背景IOS10下汉字校验有问题,使用汉字校验社区解决方案:/\p{Unified_Ideograph}/u??下面用的'ji'代表汉字:community解决方案constdata1='我是';constdata2='吉?';constpattern1=/^[\u4e00-\u9fd5]{1,6}$/gu;//nullconstpattern2=/^[\u4e00-\u9fff]{1,6}$/gu;//nullconstpattern3=/^\p{Unified_Ideograph}{0,6}$/gu;//['ji?']IOS10有问题constpattern4=/^\p{sc=Han}{1,6}$/gu;//['ji?']IOS10有问题//测试通用汉字->一切正常console.log(data1.match(pattern1));console.log(data1.match(pattern2));console.log(data1.match(pattern3));console.log(data1.match(pattern4));//测试稀有词console.log(data1.match(pattern1));//空控制台。log(data1.match(pattern2));//nullconsole.log(data1.match(pattern3));//['ji?']console.log(data1.match(pattern4));//['ji?']结论[\u4e00-\u9fd5]的匹配方式不能覆盖所有的汉字。即使用了[\u4e00-\u9fff],还是不能覆盖所有\p{Unified_Ideograph}和\p{sc=Han}两个社区方案可以覆盖所有你以为这就结束了吗?\p{Unified_Ideograph}和\p{sc=Han}指定的UnicodeScript在IOS10下无法正常运行!!!好的解决方案:回退处理validateChinese(input=''){try{constpattern=newRegExp('^\\p{Unified_Ideograph}{1,6}$','gu')returninput.match(pattern)}catch(e){//降级处理,部分汉字不会完全匹配constpattern=/^[\u4e00-\u9fff]{1,6}$/greturninput.match(pattern)}},降级后要解决汉字长度问题使用[\u4e00-\u9fff]的一个汉字的长度可以是1,也可以是2(比如''ji')。参考资料https://zhuanlan.zhihu.com/p/...https://stackoverflow.com/que...
