正则表达式允许所有字母字符加上unicode字符

时间:2012-03-15 15:31:40

标签: javascript regex unicode character-properties

我需要在字符串中使用允许所有字母字符加上希腊字母/德语字母的正则​​表达式,但要替换这些符号?,&,^,"。与*

我跳过列表中的字符以逃避,使问题变得简单。 我真的想看看如何构建它,然后使用ASCII码包含字母集。

3 个答案:

答案 0 :(得分:4)

如果您有一组有限且短的元素要替换,您可以使用一个类,例如。

 string.replace(/[?\^&]/g, '*');

并添加任意数量的符号以拒绝。您还可以添加要替换的unicode符号范围(例如\u017F-\036F\u0400-\uFFFF

否则使用一个类来指定不需要替换的符号,例如a-z,重音/变音符号和希腊符号

 string.replace(/[^a-z\00C0-\017E\u0370-\03FF]/gi, '*');

答案 1 :(得分:4)

您必须使用XRegexp plugin以及Unicode add-on

完成后,您可以使用/[\p{L}\p{Nl}]/之类的现代正则表达式,其中还必须包含那些\p{Greek}代码点,即字母或字母数字。但如果您愿意,也可以匹配/[\p{Latin}\p{Greek}]/

Javascript自己的正则表达式非常糟糕。使用XRegexp

答案 2 :(得分:1)

类似于:/^[^?&\^"]*$/(这意味着字符串仅由您列出的五个字符组成)......

但是如果你想拥有希腊字符和unicode字符(什么是unicode字符?àèéìòù?日语?)也许你将不得不使用http://xregexp.com/它是一个包含字符类的javascript的正则表达式库对于各种unicode字符类(我知道我在重复自己)以及用于unicode处理的其他“命令”。