我有以下仅允许字母的正则表达式: /[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
2 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
从ECMAScript 2018开始,JavaScript终于原生支持Unicode属性转义。
对于较旧的版本,您要么需要自己定义所有相关的Unicode范围。或者,您可以将Steven Levithan的XRegExp程序包与Unicode附件一起使用,并利用其Unicode属性快捷方式:
var regex = new XRegExp("^\\p{L}*$")
var a = "abcäöüéèê"
if (regex.test(a)) {
// Match
} else {
// No Match
}
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
如果您愿意使用Babel来构建您的JavaScript,那么我发布了一个babel插件,该插件可以将正则表达式转换为浏览器可以理解的正则表达式,/^\p{L}+$/或者将其转换/\p{^White_Space}/为正则表达式。
添加回答
举报
0/150
提交
取消