为了账号安全,请及时绑定邮箱和手机立即绑定

仅匹配unicode字母

仅匹配unicode字母

我有以下仅允许字母的正则表达式:     /[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

}


查看完整回答
反对 回复 2019-12-06
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

如果您愿意使用Babel来构建您的JavaScript,那么我发布了一个babel插件,该插件可以将正则表达式转换为浏览器可以理解的正则表达式,/^\p{L}+$/或者将其转换/\p{^White_Space}/为正则表达式。

查看完整回答
反对 回复 2019-12-06
  • 2 回答
  • 0 关注
  • 661 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信