小编典典

仅匹配unicode字母

javascript

我有以下仅允许字母的正则表达式:

     /[a-zA-Z]+/

     a = "abcDF"
     if (a.match(/[a-zA-Z]+/) == a){
        //Match
     }else{
        //No Match
     }

如何使用p {L}(通用-任何语言,例如德语,英语等)来执行此操作

我试过了

  a.match(/[p{l}]+/)
  a.match(/[\p{l}]+/)
  a.match(/p{l}/)
  a.match(/\p{l}/)

但所有字母a =“ aB”均返回null


阅读 329

收藏
2020-05-01

共1个答案

小编典典

从ECMAScript2018开始,JavaScript终于原生支持Unicode属性转义。

对于较旧的版本,您要么需要自己定义所有相关的Unicode范围。或者,您可以将StevenLevithan的XRegExp程序包与Unicode附件一起使用,并利用其Unicode属性快捷方式:

var regex = new XRegExp("^\\p{L}*$")
var a = "abcäöüéèê"
if (regex.test(a)) {
    // Match
} else {
    // No Match
}
2020-05-01