美文网首页
Unicode编码及在正则表达式中的使用

Unicode编码及在正则表达式中的使用

作者: sendo | 来源:发表于2016-10-18 15:56 被阅读0次

    今天日文版本项目中用户名校验有一个这样的需求:“匹配1-15位的 半角 英文字母和数字,连字符,下划线与 全角 日语”。看到这个需求时感觉还真是变态哈,全角、半角的看着很不适应,无奈在google、baidu上来查找。

    一、解决问题

    1. 首先来看看半角英文字母和数字的Unicode编码范围:

    0-9:\u0030-\u0039

    A-Z:\u0041-\u005a

    a-z :\u0061-\u007a

    1. 连字符和下划线不用多说“-_”

    2. 全角日语

    这个比较搞人,首先日语中包含部分汉字、日文平假名、日文片假名。

    全部汉字 :\u4E00 – \u9FBF

    全角平仮名:\u3040 – \u309F

    全角片仮名:\u30A0 – \u30FF

    但是这个汉字的Unicode编码还是不太准确的。

    综上,可以写出正则表达式来判断:

    var pattern = /^[\u0030-\u0039\u0041-\u005a\u0061-\u007a\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FBF\-_]{1,15}$/,
     result  = pattern.test(value);
    

    二、字符范围

    半角字符:

    半角拉丁字符u0000 – u00FF

    半角日语字符uFF61 – uFF9F

    半角其他字符uFFE8 – uFFEE

    全角字符:

    全角数字(0-9) uFF10 – uFF19

    全角大英字(A-Z): uFF21 – uFF3A

    全角小英字(a-z): uFF41 – uFF5A

    全角平仮名:u3040 – u309F全角片仮名:u30A0 – u30FF

    全角Latin: uFF01 – uFF5E全角Symbol: uFFE0 – uFFE5

    相关文章

      网友评论

          本文标题:Unicode编码及在正则表达式中的使用

          本文链接:https://www.haomeiwen.com/subject/enltuttx.html