拒绝所有非英语字符的正则表达式,除了一些带有重音符号的字符

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 的字母的字符=].