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