正则表达式不接受2个空格和特殊字符

时间:2015-11-19 06:03:16

标签: javascript regex

我在创建正则表达式时遇到问题:

  1. 我必须验证字符串不接受两个或更多空格 示例:ABCabc aasbdfdf% $ && $$ / $ /

  2. 如果用户输入字符串,则上例显示模式" Not a valid name":

  3. 这是我的代码:

     var newexprg = /^(?!\s*$)[-a-zA-Z0-9_:,.' ']{1,100}$/;
        var obj= {
            descripcion: des,<--- 'ABCabc   $%/##%%aass'
            nombre: $("#txtNombre").val(), <--- 'ABCabc   $%/##%%aass'
        }
        if (newexprg.test(obj.nombre)) {
            if (newexprg.test(obj.descripcion)) {
    
                $('#modal-Caracteres').modal("show");
            } else {
                $.ajax({
                    type: "POST",
                    url: 'MyMethodSave',
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    data: "{ParameterName:" + JSON.stringify(obj) + "}",
                    async: false,
                    success: function (response) {
    
                    },
                });
            }
        } else {
            $('#modal-Caracteres').modal("show");
        }
    

    但每次我进入我的链时,这种方法都会保存对象。

1 个答案:

答案 0 :(得分:0)

RegEx与负面条件匹配,例如“它不包含2个空格”是可能的,但是有一个更简单的方法:

将字符串与2个空格匹配:

/\s\S*\s/
  • 匹配:空格\s后跟任意数量的字符,这些字符不是空格\S*,后跟第二个空格\s

然后否定比赛返回的值:

var newexprg = /\s\S*\s/;

if (! /\s\S*\s/.test(yourString)) {
    // Valid
} else {
    // Invalid
}