Javascript正则表达式字符串中的货币符号

时间:2014-09-18 10:57:10

标签: javascript regex

所以我有一个格式字符串,可以是$#,###.00"£#,###.00,我想在这里得到货币符号就是我正在使用的代码:

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

我希望currencySymbol等于“$”或“£”,但它不起作用currencySymbol为null。

4 个答案:

答案 0 :(得分:8)

简短回答

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

答案很长

相当于/\p{Sc}/的JavaScript正则表达式为:

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();

观看:

答案 1 :(得分:1)

\p{Sc}是PCRE正则表达式属性,Javascript不支持它。

在Javascript中,您需要使用字符类中的特定符号来匹配它们:

/[$£]/

答案 2 :(得分:1)

您可以使用XregExp之类的插件。

答案 3 :(得分:0)

您也可以使用此/(kr|$|£|€)/

currencySymbol = format.match(/(kr|$|£|€)/);