js特殊字符过滤的示例代码

代码如下:

//匹配中文 数字 字母 下划线      
 var checkInput = function (str) {
            var pattern =var pattern = /^[\w\u4e00-\u9fa5]+$/gi;
            if(pattern.test(c))
            {
                return false;
            }
            return true;
        }

1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号


代码如下:

function stripscript(s) {
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
        var rs = "";
    for (var i = 0; i < s.length; i++) {
        rs = rs + s.substr(i, 1).replace(pattern, '');
    }
    return rs;
}

2.校验所有输入域是否含有特殊符号


代码如下:

/**
 * 校验所有输入域是否含有特殊符号
 * 所要过滤的符号写入正则表达式中,注意,一些符号要用'\'转义.
 * 试例:
 * if(checkAllTextValid(document.forms[0]))
 * alert("表单中所有文本框通过校验!");
 */
function checkAllTextValid(form) {
    //记录不含引号的文本框数量
    var resultTag = 0;
    //记录所有text文本框数量
    var flag = 0;
    for (var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].type == "text") {
            flag = flag + 1;
            //此处填写所要过滤的特殊符号
            //注意:修改####处的字符,其它部分不许修改.
            //if(/^[^####]*$/.test(form.elements[i].value))

if (/^[^\|"'<>]*$/.test(form.elements[i].value))
                resultTag = resultTag + 1;
            else
                form.elements[i].select();
        }
    }

/**
     * 如果含引号的文本框等于全部文本框的值,则校验通过
     */
    if (resultTag == flag)
        return true;
    else {
        alert("文本框中不能含有\n\n 1 单引号: ' \n 2 双引号: \" \n 3 竖 杠: | \n 4 尖角号: < > \n\n请检查输入!");
        return false;
    }
}

(0)

相关推荐

  • js特殊字符转义介绍

    点的转义:. ==> \\u002E 美元符号的转义:$ ==> \\u0024 乘方符号的转义:^ ==> \\u005E 左大括号的转义:{ ==> \\u007B 左方括号的转义:[ ==> \\u005B 左圆括号的转义:( ==> \\u0028 竖线的转义:| ==> \\u007C 右方括号转义:] ==> \\u005D 右圆括号的转义:) ==> \\u0029 星号的转义:* ==> \\u002A 加号的转义:+ ==>

  • js中传递特殊字符(+,&)的方法

    背景: 今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长).查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了. 原因: js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等. 解决办法: 1.将字符放到form中,然后用js提交form表单到服务器.

  • js 页面传参数时 参数值含特殊字符的问题

    工作中遇到的小问题,一个页面中通过window.showModel("comm/morelanguage.jsp?str=zh_CN:爱#;zh_TW:愛;en:love;",,,,);弹出另一个页面并将参数传递到另一个页面,另一个页面接受得到src参数值时会出现问题,值不对,测试过是因为#特殊字符的问题,对于这些特殊字符我采取的办法是 传参数时,str=escape('str=zh_CN:爱#;zh_TW:愛;en:love;')处理 接受参数时,拿到str后str=unescape

  • JS过滤url参数特殊字符的实现方法

    在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数

  • 基于javascript如何传递特殊字符

    在没步入正轨之前,先给大家介绍JavaScript 特殊字符 你可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符. 插入特殊字符 反斜杠用来在文本字符串中插入省略号.换行符.引号和其他特殊字符. 请看下面的 JavaScript 代码: var txt="We are the so-called "Vikings" from the north." document.write(txt) 在 JavaScript 中,字符串使用单引号或者双引号来

  • jquery ajax对特殊字符进行转义防止js注入使用示例

    在使用ajax进行留言的时候,出现了一个问题.因为留言内容写完之后,通过ajax提交内容,同时使用js把留言的内容添加到页面上来.浏览留言的时候也是通过ajax请求,然后再显示的.这样,如果有人在留言里写入了js语句,这结语句都会被执行.解决办法就是对这些特殊字符进行转义再显示出来.如果在jsp中使用jstl标签,就很简单了.直接使用<c:out value="${r.content}" />这样就行了,会自动进行转义,其中省略了参数escapeXML="true

  • js传参数受特殊字符影响错误的解决方法

    类似于 `~!@#$%^&*()_ -=[]{}|;':",.\/<>? 这样的特殊字符作为参数时,如果不做处理,会产品传参错误. 解决方法: encodeURI 方法 将文本字符串编码为一个有效的统一资源标识符 (URI). encodeURI(URIString) 必选的 URIString 参数代表一个已编码的 URI. 说明 encodeURI 方法返回一个编码的 URI.如果您将编码结果传递给 decodeURI,那么将返回初始的字符串.encodeURI 方法不会

  • 防止xss和sql注入:JS特殊字符过滤正则

    复制代码 代码如下: function stripscript(s) { var pattern = new RegExp("[%--`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥--&*()--|{}[]'::""'.,.?]")        //格式 RegExp("[在中间定义特殊过滤字符]")var rs = ""; for (var i = 0; i <

  • 两种方法解决javascript url post 特殊字符转义 + & #

    最近在用url 传特殊字符的时候发现数据丢失了. 其实不是丢失,比如 '+'它会当成连接字符来处理了. 一.替换成16进制字符,在这列几个常用的转换 + 空格 / ? % & = # %2B %20 %2F %3F %25 %26 &3D %23 复制代码 代码如下: var post_Str = apply_name.replace(/\+/g, "%2B");//"+"转义   var post_Str= post_Str.replace(/\&

  • js中过滤特殊字符的正则表达式

    复制代码 代码如下: function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥--&*()--|{}[]'::""'.,.?]") var rs = ""; for (var i = 0; i < s.length; i++) { rs = rs+s.substr(i, 1).replace(

随机推荐