Unicode正则表达式不匹配外来字符

时间:2019-10-07 02:09:27

标签: javascript regex

我要做的就是允许A-Za-z0-9,包括ñíö等外来字母字符。我读到确实可以这与Unicode标志。因此,我的表情是:

re = /^[A-Za-z0-9]+$/u

但是,它与上面的任何外国字符都不匹配,这是我测试过的唯一字符。我怀疑它根本不会匹配任何外国字符。

有没有办法包含所有或大多数外来字符?

2 个答案:

答案 0 :(得分:3)

对于字母,\ p {L}将匹配“字母”类别中的任何Unicode字符。请注意,这是not well supported

来源:https://stackoverflow.com/a/3010005

另请参阅:https://www.regular-expressions.info/unicode.html

答案 1 :(得分:2)

我正在猜测,也许

^(?:[A-Za-z0-9]|[^\x00-\x7F])+$
如果您希望与浏览器兼容,则

或其中的一个衍生版本可能会起作用。

否则,

^[\p{L}]+$

可能只是工作。

来源

Unicode Regular Expressions