2014-09-18 4 views
3

поэтому у меня есть строка форматирования, которая может быть $#,###.00 или "£#,###.00, и я хотел бы получить символ валюты сформировать его здесь код, который я использую:Javascript символ регулярного выражения валюты в строке

currencySymbol = format.match(/\p{Sc}/); 

Я бы хотел, чтобы currencySymbol был равен «$» или «£», но он не работает currencySymbol имеет значение null.

+0

'format.charAt (0)'? –

+0

не уверен, что это всегда первый символ для евро, например, последний символ –

+0

@HasseneBenammou делает мой ответ ниже, помогая вам? Что именно вы пытаетесь достичь? Если вы заинтересованы в поиске различных символов валюты, взгляните на CLDR. Например, http://www.unicode.org/repos/cldr-aux/json/26/main/en/currencies.json. Если вы хотите добавить наценки на символы валюты, я также могу вам помочь. –

ответ

1

\p{Sc} - свойство регулярного выражения PCRE и Javascript не поддерживает его.

В Javascript необходимо использовать специальные символы в классе символов, чтобы соответствовать им, как это:

/[$£]/ 
+0

Должен ли я перечислять все валюты? потому что это может быть что угодно. –

+0

К сожалению, да, вам нужно будет перечислить все возможные валюты в этом классе символов в JS. – anubhava

5

Короткий ответ:

/[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]/

Длинный ответ:

JavaScript регулярное выражение эквивалентно /\p{Sc}/ является:

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 

выше имеет пчела п порождается:

$ npm install regenerate 
$ npm install unicode-7.0.0 
$ node 
> regenerate().add(require('unicode-7.0.0/categories/Sc/symbols')).toString(); 

Watch:

Смежные вопросы