对于网页中用户输入的特殊字符过滤方法
Posted maochenhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于网页中用户输入的特殊字符过滤方法相关的知识,希望对你有一定的参考价值。
背景
我们网页中需要用户填写一些信息,因为我们的网页比较特殊,是针对国际的用户,并且支持多种语言,线上发现用户会通过copy的方式填充输入,可能是从word等软件中copy的,带入了一些不可见的字符。
比如u200B这种零宽度的空格,以及一些看起来像半角空格的,含有这些字符后,会导致信息校验失败
解决方法
1.禁止用户copy
https://www.cnblogs.com/3box/p/5711498.html
2.限定输入范围,在输入改变时,替换非法字符
$("#inputId").on("keyup change", function () { var inputCurr = $(this).val(); //p{C}是替换不可见字符 //p{Zs}是替换空格为半角空格,全角空格也会被替换成半角空格 var inputNew = inputCurr.replace(/[p{C}]/gu, ‘‘).replace(/[p{Zs}]/gu, ‘ ‘); if (inputCurr != inputNew) { $(this).val(inputNew); } });
分隔符p{Z}
p{Zs}
或p{Space_Separator}
:a whitespace character that is invisible, but does take up space.p{Zl}
或p{Line_Separator}
:line separator character U+2028.p{Zp}
或p{Paragraph_Separator}
:paragraph separator character U+2029.- 其它符号
p{C}
(包括不可见控制字符与未用码位)
参考资料
https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
以上是关于对于网页中用户输入的特殊字符过滤方法的主要内容,如果未能解决你的问题,请参考以下文章