js判断字符串是否含有特殊字符和emoji表情

JavaScript021

reg = /[~#^$@%&!?%*]/gi if (reg.test(postdata.Name.trim())) {alert("姓名不能含有特殊字符") } else {if (isEmojiCharacter(postdata.Name.trim())) {alert("姓名不能含有表情") } else { //自己的代码} } function isEmojiCharacter(substring) {for (var i = 0i <substring.lengthi++) {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 }}}}

这个直接用javascript的正则表达式取就可以了。

下面是简单的代码实现,仅供参考:

var a = 'asdfwlf!@#@##$%$%^SFDGD^%^%&&$#'

console.log(a.match(/[\~!@#$%^&*-_]/g))

//这个结果是:["!", "@", "#", "@", "#", "#", "$", "%", "$", "%", "^", "S", "F", "D", "G", "D", "^", "%", "^", "%", "&", "&", "$", "#"],出来的是一个数组。

可以通过join的方式编程一个字符串。

console.log(a.match(/[\~!@#$%^&*-_]/g).join())

//结果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#

如果不想要',' ,还可以再把','去掉。

console.log(a.match(/[\~!@#$%^&*-_]/g).join(''))

//结果是:!@#@##$%$%^SFDGD^%^%&&$#

js中的特殊字符,加上转义符\ 。

例如:

var txt="We are the so-called "Vikings" from the north." document.write(txt) 【错误】

var txt="We are the so-called \"Vikings\" from the north." document.write(txt) 【正确】