如何判断备注的长度呢

后台给的备注的长度是string 20,也就是中文只能放6个字符,英文能放20个。我用maxlength限制的话,6就太小,20的话也有问题。放中文就报错了。所以我该怎么判断这个字符串的长度呢。汉字字符
英文字符
中文标点
英文标点
空格
这些在UTF-8里面各自占几个字节。。我是不是只能把字符串拆分然后判断里面英文几个中文几个中文标点几个英文标点几个空格几个来判断?

阅读 2.8k
2 个回答

javascript 没有原生支持计算字符串字节长度的方法,但如果你清楚的知道你的字符串的字符编码,比如是utf-8,那么你可以通过下面这个函数进行计算。

function lengthInUtf8Bytes(str) {
  // Matches only the 10.. bytes that are non-initial characters in a multi-byte sequence.
  var m = encodeURIComponent(str).match(/%[89ABab]/g);
  return str.length + (m ? m.length : 0);
}

如果中文、中文标点算两个英文字符的话,我这里倒是有个方法可以用

推荐问题