我需要在字符串中使用允许所有字母字符加上希腊字母/德语字母的正则表达式,但要替换这些符号?,&,^,"
。与*
我跳过列表中的字符以逃避,使问题变得简单。 我真的想看看如何构建它,然后使用ASCII码包含字母集。
答案 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处理的其他“命令”。