Reputation: 379
so I have a formatting string that can be $#,###.00
or "£#,###.00
and I would like to get the currency symbol form it here is the code that I'm using:
currencySymbol = format.match(/\p{Sc}/);
I would like currencySymbol to be equal to "$" or "£" but it's not working currencySymbol is null.
Upvotes: 8
Views: 10950
Reputation: 20015
You can also use this /(kr|$|£|€)/
.
currencySymbol = format.match(/(kr|$|£|€)/);
Upvotes: 0
Reputation: 2899
Short answer:
/[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]/
Long answer:
A JavaScript regular expression equivalent to /\p{Sc}/
is:
ScRe = /[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]/
ScRe.test("$"); // true
ScRe.test("£"); // true
ScRe.test("€"); // true
The above has been generated by:
$ npm install regenerate
$ npm install unicode-7.0.0
$ node
> regenerate().add(require('unicode-7.0.0/categories/Sc/symbols')).toString();
Watch:
Upvotes: 21
Reputation: 786359
\p{Sc}
is PCRE regex property and Javascript doesn't support it.
In Javascript you need to use specific symbols in character class to match them like this:
/[$£]/
Upvotes: 4