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

仅匹配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 回答

?
料青山看我应如是

从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
?
慕仰0522570

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

查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

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