C ++和JS RegEx相当于\ p {L}

时间:2016-06-23 14:24:24

标签: javascript java c++ regex

我需要匹配电子邮件地址中的所有unicode字符。我可以使用\ p {L}在Java中进行此验证。 JS和C ++中有没有\ p {L}等价物?

如果不是哪个是在C ++和JavaScript中提供此功能的最可靠的开源库?

1 个答案:

答案 0 :(得分:3)

ECMAScript以及std::regex支持的所有其他版本都不支持Unicode属性(Unicode类别类)。 JavaScript也没有这种支持。

作为一种解决方法,请在C ++中使用Boost library,在JavaScript中使用XRegExp library

在Boost中,声明正则表达式如下:

boost::wregex reg(L"^\\p{L}+$");

请注意,^\p{L}+$仅匹配1个以上的字母字符串。

JS示例:



var str = "bębnić";
regex = XRegExp('^\\p{L}+$');
console.log(regex.test(str));

<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>
&#13;
&#13;
&#13;