字符串长度判断(中英文区分)

简单判断字符串长度很简单,如果要区分中英文,例如1个中文字符等价于2个英文字符(等),可以使这正则做控制,先看代码:

if (name.replace(/[^\x00-\xff]/g, "**").length === 16) {
     _this.pageview.showTip({text: '分类名称长度超过8个字符'});
     return;
} 

关键在于[^\x00-\xff], 其实 就是 \xnn 这个匹配, 对应的也就是ASCII代码中十六进制代码为nn的字符,所以,[^\x00-\xff] 表示匹配非单字节的字符,例如汉字;单字节字符包括英文字母(符号)、数字……

所以这里的正则思路,也就是将汉字等非单字节字符的替换为2个单字节字符,这样统计的时候根据限制的数目*2就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,185评论 0 9
  • Java的正则表达式讲解:(为了能看清,本文正则表达式用中文的句号代替英文句点) 英文句点符号:匹配单个任意字符。...
    红姑娘阅读 4,417评论 0 2
  • \d 代表 [0-9] \l 代表 [a-z] \u 代表 [A-Z] \a 代表 [A-Za-z] \w 代表 ...
    zhuoshao阅读 1,419评论 0 5
  • 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{...
    johney_zhou阅读 433评论 0 1
  • 引用类型有哪些?非引用类型有哪些 引用类型:Object、Array、Date、RegExp、Function、M...
    _Dot912阅读 345评论 0 3