Skip to content

Instantly share code, notes, and snippets.

@ldd
Last active November 5, 2017 03:55
Show Gist options
  • Save ldd/0ef4ef6a9942b5edc594f2bba70c9224 to your computer and use it in GitHub Desktop.
Save ldd/0ef4ef6a9942b5edc594f2bba70c9224 to your computer and use it in GitHub Desktop.
reverse unicode strings
var rSymbolMarks = /(<%= allExceptCombiningMarks %>)(<%= combiningMarks %>+)/g;
var rSurrogatePair = /([\uD800-\uDBFF])([\uDC00-\uDFFF])/g;
var reverse = s => s
.replace(rSymbolMarks, ($0, $1, $2) => `${reverse($2)}${$1}`)
.replace(rSurrogatePair, '$2$1')
.split('')
.reverse()
.join('')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment