我在创建正则表达式时遇到问题:
我必须验证字符串不接受两个或更多空格
示例:ABCabc aasbdfdf% $ && $$ / $ /
如果用户输入字符串,则上例显示模式" Not a valid name
":
这是我的代码:
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");
}
但每次我进入我的链时,这种方法都会保存对象。
答案 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
}