Javascript Java脚本输入格式验证
我想验证其中一个输入字段的以下格式Javascript Java脚本输入格式验证,javascript,regex,Javascript,Regex,我想验证其中一个输入字段的以下格式 1111-111-111 //4digits- 3digits- 3digits 我尝试了下面的方法,但不起作用。你知道我错了什么吗 function(value) { var patt = "/^\d{4}-d{3}-d{3}$/"; var res = value.match(patt); if (!res) { return { status: 2, message
1111-111-111 //4digits- 3digits- 3digits
我尝试了下面的方法,但不起作用。你知道我错了什么吗
function(value) {
var patt = "/^\d{4}-d{3}-d{3}$/";
var res = value.match(patt);
if (!res) {
return {
status: 2,
message: 'Input should be formatted as 0000-000-000'
};
} else {
return {
status: 0
};
}
}
另外,给定一个字符串,我想强制某些索引处的字符为空。
例如:总共23个字符,其中第2、第9、第11和13-21个是空格字符。
我不熟悉Javascript正则表达式,我们如何执行这些规则?您的正则表达式是错误的。修复它:
/^\d{4}-\d{3}-\d{3}$/
您的第二部分和第三部分是“d”字符,而不是数字。
并在声明正则表达式时删除“
字符
var patt = /^\d{4}-\d{3}-\d{3}$/;
如果我们只希望传递4-3-3位数字,我们可以简单地使用:
^[0-9]{4}-[0-9]{3}-[0-9]{3}$
或:
如果我们还希望捕获电话号码,我们将添加一个捕获组:
^([0-9]{4}-[0-9]{3}-[0-9]{3})$
const regex=/^[0-9]{4}-[0-9]{3}-[0-9]{3}$/gm;
常量str=`1111-111-111
1111-111-1111
8888-888-888`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}
第一个模式不能像预期的那样工作,因为要匹配一个数字,您必须转义d,比如\d
或者d{3}
将匹配一个d
字符的3倍,并且模式不应该在双引号之间,而应该在/
之间
let test=函数(值){
var patt=/^\d{4}-\d{3}-\d{3}$/;
var res=值匹配(patt);
如果(!res){
返回{
现状:2,
消息:“输入应格式化为0000-000-000”
};
}否则{
返回{
状态:0
};
}
};
console.log(test(“1111-111-111”);
但是res
是空的。为什么会这样?@Programmerzzz,在定义正则表达式时尝试使用patt.test(value)
删除”
字符
^([0-9]{4}-[0-9]{3}-[0-9]{3})$