我有以下仅允许字母的正则表达式:
/[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
从ECMAScript2018开始,JavaScript终于原生支持Unicode属性转义。
对于较旧的版本,您要么需要自己定义所有相关的Unicode范围。或者,您可以将StevenLevithan的XRegExp程序包与Unicode附件一起使用,并利用其Unicode属性快捷方式:
XRegExp
var regex = new XRegExp("^\\p{L}*$") var a = "abcäöüéèê" if (regex.test(a)) { // Match } else { // No Match }