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 }}}}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) 【正确】
这个直接用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^%^%&&$#