我需要一个正则表达式来允许字符串中 所有字母, 包括希腊/德国字母, 但将这些符号
我跳过了字符列表,以简化问题。我真的想看看如何构建它,然后使用 ASCII 码包含字母集合。
?,&,^,"
替换为 *
。我跳过了字符列表,以简化问题。我真的想看看如何构建它,然后使用 ASCII 码包含字母集合。
?,&,^,"
替换为 *
。如果你有一组有限且短的要替换的元素,你可以使用一个类,例如:
string.replace(/[?\^&]/g, '*');
您可以添加任意数量的符号来拒绝替换。您还可以添加Unicode符号的范围,以便替换(例如\u017F-\036F\u0400-\uFFFF
)
否则,使用类来指定不需要替换的符号,如a-z、重音/变音字母和希腊符号
string.replace(/[^a-z\00C0-\017E\u0370-\03FF]/gi, '*');
XRegexp
插件,以及Unicode附加组件。一旦安装完成,你就可以使用现代正则表达式,例如/[\p{L}\p{Nl}]/
,它必然包括那些是字母或数字字母的\p{Greek}
码点。但如果你想的话,也可以匹配/[\p{Latin}\p{Greek}]/
。XRegexp
。所以类似这样:/^[^?&\^"]*$/
(这意味着该字符串仅由您列出的五个字符之外的字符组成)...
但是如果您想要希腊字母和Unicode字符(什么是Unicode字符?àèéìòù?日语?),也许您需要使用http://xregexp.com/。它是JavaScript的正则表达式库,包括各种Unicode字符类的字符类(我知道我在重复自己),以及其他用于Unicode处理的“命令”。
[?&^"]
,但这可能不是您想要的。 (顺便说一下,希腊字符集位于包括0x370
和0x03ff
在内的范围内) - Regexident