js判断字符串是否含有特殊字符和emoji表情?以及如何过滤

更新日期: 2019-01-04阅读: 5.5k标签: 字符

js判断字符串是否含有特殊字符和emoji表情,代码如下: 

var reg = /[~#^$@%&!?%*]/gi;
if(reg.test(postdata.Name.trim())) {
	alert("姓名不能含有特殊字符");
} else {
	if(isEmojiCharacter(postdata.Name.trim())) {
		alert("姓名不能含有表情");
	} else {
		//自己的代码
	}

}

function isEmojiCharacter(substring) {
	for(var i = 0; i < substring.length; i++) {
		var hs = substring.charCodeAt(i);
		if(0xd800 <= hs && hs <= 0xdbff) {
			if(substring.length > 1) {
				var ls = substring.charCodeAt(i + 1);
				var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
				if(0x1d000 <= uc && uc <= 0x1f77f) {
					return true;
				}
			}
		} else if(substring.length > 1) {
			var ls = substring.charCodeAt(i + 1);
			if(ls == 0x20e3) {
				return true;
			}
		} else {
			if(0x2100 <= hs && hs <= 0x27ff) {
				return true;
			} else if(0x2B05 <= hs && hs <= 0x2b07) {
				return true;
			} else if(0x2934 <= hs && hs <= 0x2935) {
				return true;
			} else if(0x3297 <= hs && hs <= 0x3299) {
				return true;
			} else if(hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 ||
				hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b ||
				hs == 0x2b50) {
				return true;
			}
		}
	}
}


js禁止输入框输入特殊符号或emoji表情

解决方案就是,事件上绑定检查事件,检查输入的值是否含有特殊符号或emoji表情,检查的话就用正则表达式 

// 判断是否含有特殊符号
let iconRule1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im
// 判断是否含有emoji表情
let iconRule2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig
// 如果为true,字符串含有emoji表情 ,false不含
console.log(iconRule2.test(info.personName))
// 如果为true,字符串含有特殊符号 ,false不含
console.log(iconRule1.test(info.personName))


 

链接: https://fly63.com/article/detial/1766

JS转换HTML转义符

去掉html标签,普通字符转换成转意符,转意符换成普通字符,&nbsp;转成空格,回车转为br标签,去除开头结尾换行,并将连续3次以上换行转换成2次换行,将多个连续空格合并成一个空格

Unicode字符集的由来

Unicode于乱世出生逐渐成为标准统一字符世界,至今仍持续发展,造福了社会,极大的提升了生产效率,虽未与ASCII并列与IEEE里程碑,但也是计算机科学史中一件举足轻重的大事记。

javascript如何判断字符是否是中文?

有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到。用Javascript判断通常有两种方法。

Js如何判断字符串中是否包含某个字符串?

JavaScript中要判断字符串中是否包含某个字符串有多种方法,下面我们来看一下使用indexOf()方法、search()方法、match()方法来判断字符串中是否包含某个字符串。

javascript怎么判断字符是否是中文?

有时我们需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到。那么如何判断?下面本篇文章就来给大家介绍一下判断方法

javascript中字符串如何转换成数组?

javascript中字符串如何转换成数组?下面本篇文章就来给大家介绍一下使用javascript将字符串转换成数组的方法,在javascript中,可以使用split()方法来将字符串转换成数组。split()方法用于把一个字符串分割成字符串数组

javascript如何添加前置0?

很多时候为了显示格式,需要在某一字符串不满位的情况下进行前补0操作。下面这篇文章就给大家主要介绍了javascript添加前置0(补零)的方法。

Javascript怎样提取字符个数?

javascript中获取字符串的字符个数主要是根据字符串的变量,然后通过.length就可以获取到字符串的长度。JavaScript中可以使用length属性来提取字符个数。

JavaScript 专题之花式表示 26 个字母

我们之所以拼出 toString,是因为利用 toString 这个方法可以表示出 26个 字母!这时候,就要隆重介绍下这个平时看起来不起眼,但是在这里确实最终主角的 toString 方法!

字符集的知识

想必做过爬虫的同学肯定被编码问题困扰过,有 UTF-8、GBK、Unicode 等等编码方式,但你真的了解其中的原理吗?下面我们就来了解一下 Unicode 和 UTF-8 编码到底有什么关系。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!