拒绝所有非英语字符的正则表达式,除了一些带有重音符号的字符
Regular expression to reject all non-English characters except some characters with accents
这对于禁止所有非英文字母非常有用:
/[^\x00-\x7F]+/
但是我会允许这些字符:
âäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ
如何将它们添加到正则表达式中以便允许使用它们?
虽然看起来很长但是一个简单的字符class就可以了。
正则表达式: [a-zA-ZâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]
如果像 /[^\x00-\x7F]+/
这样的模式适合您,它会匹配您现在想要避免匹配的所有字母。
由于 [^...]
是一个 negated character class,因此 排除 个 char/set 字符的最简单方法是将它们添加到class:
/[^\x00-\x7FâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]+/
参见regex demo。
如果您使用空字符串作为替换模式,您将删除每 1+ 个不是 ASCII (\x00-\x7F
) 且不等于添加到否定字符 [=27 的字母的字符=].
这对于禁止所有非英文字母非常有用:
/[^\x00-\x7F]+/
但是我会允许这些字符:
âäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ
如何将它们添加到正则表达式中以便允许使用它们?
虽然看起来很长但是一个简单的字符class就可以了。
正则表达式: [a-zA-ZâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]
如果像 /[^\x00-\x7F]+/
这样的模式适合您,它会匹配您现在想要避免匹配的所有字母。
由于 [^...]
是一个 negated character class,因此 排除 个 char/set 字符的最简单方法是将它们添加到class:
/[^\x00-\x7FâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]+/
参见regex demo。
如果您使用空字符串作为替换模式,您将删除每 1+ 个不是 ASCII (\x00-\x7F
) 且不等于添加到否定字符 [=27 的字母的字符=].