Format text in iOS app with another app via share sheet?

I’m wondering if anyone knows of an app that can format highlighted text in another app via a share sheet in iOS. I’m not even sure this is possible. Basically I have text in one app (in several areas) that is all caps and I want to change it to title case…but without doing a lot of copy and pasting. I was hoping I could highlight the text, run some sort of share extension that gives formatting options, then do it again and again.

This is my go to app for that nowadays. You can do a lot with Shortcuts too though.


Thanks, Rose! I gave Clean Text a try (Sparky recommended it a couple years ago) and it did what I needed…but no share extension and no shortcuts. It was pretty great for what it does do, though (regx support built in). I’ll try Text Case next!


This is part of what I call a “value added shelf”. (For a Marketing guy I sure come up with some snappy names.) :slight_smile:

I would really like a programmable shelf. Shortcuts almost gets there but doesn’t have a “repository” capability. But, as you noted, you could do arbitrary text (and image, etc) transforms by dropping on it.

Copied can both transform text in the clipboard and act as a shelf for most purposes.

1 Like

Right. But can you write your own formatting (etc) scripts? I don’t care which language.

Yes, in Javascript.

Here’s the template for a new one:

// A clipping object is a JavaScript object
// that contains the following properties.
// Properties values may be null.
//  title       (String)
//  text        (String)
//  url         (String)
//  saveDate    (Date)

// Return true if the clipping can be reformatted with this script.

function canFormat(clipping) {
    return clipping.text != null

// Process data and return a new/updated clipping object or a string.

function format(clipping) {
    return encodeURI(clipping.text)

And a sample Remove Extra Whitespace:

function canFormat(clipping) {
    return clipping.text != null

function format(clipping) {
    var text = clipping.text
    text = text.trim()
    text = text.replace(/(\r\n|\r|\n){2,}/g, '$1\n')
    return text

As far as I can tell this isn’t documented on the app web site. But it’s in the iOS app.

Oh…I already have copied and didn’t know that!