微信公众号菜单名字的规范要求“仅支持中英文和数字,字数不超过4个汉字或8个字母”。
其中一个汉字占俩字符,数字和英文是一个字符,像中英数字混合的比如“哈哈12b”正好8个字符是可以的。
求教这个正则咋写啊
微信公众号菜单名字的规范要求“仅支持中英文和数字,字数不超过4个汉字或8个字母”。
其中一个汉字占俩字符,数字和英文是一个字符,像中英数字混合的比如“哈哈12b”正好8个字符是可以的。
求教这个正则咋写啊
如果需要依据错误的场景来做不同提示,其实分开来做检测更合适一些。
function test(str) {
if (Object.prototype.toString.call(str).slice(8, -1).toLowerCase() !== 'string') {
throw Error('param str type error ');
} else if (!str) {
console.log('param str is a empty string');
return false;
} else if (!/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(str)) {
console.log('字符串中包含除中文、数字、英文以外的字符!');
return false;
} else if (str.replace(/[\u4e00-\u9fa5]/g, "**").length > 8) {
console.log('字符串长度超过限制!');
return false;
}
return true;
}
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
8 回答3.8k 阅读
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
一个正则写不出来,匹配出所有中文和所有英文数字然后计算吧。