84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
做了一个页面,主要是手机上输入的内容,要显示在PC浏览器上。
然而手机端能输入emoji,但浏览器显示不出来。由于某些原因也不想让它显示出来。
所以希望在手机端提交时做一下检测,检查用户输入的文本中是否包含emoji,如果有就提示用户不能包含emoji。
请问这个if条件该怎么写?
php后端或js前端的代码都可以。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
用正则表达式过滤呗,或者用unicode编码判断
http://www.unicode.org/Public...根据里面列出来的范围进行过滤,可以用正则表达式,也可以列一个hash map
var re = /[表情1]|[表情2]|[表情3]..../ ;re.test(你要检测的字符);
其实有一个办法。用mb系列函数来实现。首先确定长度。然后,循环判断每个字符,那个字符是4个字节的就可以了。emoiji的一个符号占用4个字符。一般的字符串也就是汉字最多占用3个字符。这么一判断,就能搞定了。
mb
确定字符的编码,然后,匹配,替换。
var param = ""; var regRule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g; if(param.match(regRule)) { param = param.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, ""); alert("不支持表情"); }
function have_emoji($str){ $mat = []; preg_match_all('/./u', $str,$mat); foreach ($mat[0] as $v){ if(strlen($v) > 3){return true;} } return false; }
用正则表达式过滤呗,或者用unicode编码判断
http://www.unicode.org/Public...
根据里面列出来的范围进行过滤,可以用正则表达式,也可以列一个hash map
var re = /[表情1]|[表情2]|[表情3]..../ ;
re.test(你要检测的字符);
其实有一个办法。用
mb
系列函数来实现。首先确定长度。然后,循环判断每个字符,那个字符是4个字节的就可以了。emoiji的一个符号占用4个字符。一般的字符串也就是汉字最多占用3个字符。这么一判断,就能搞定了。确定字符的编码,然后,匹配,替换。