Javascript 重新制作此regexp
我有这个正则表达式来帮助我验证表单输入Javascript 重新制作此regexp,javascript,jquery,html,validation,forms,Javascript,Jquery,Html,Validation,Forms,我有这个正则表达式来帮助我验证表单输入 var nrExp = /^\d{6}\-\d{4}$/; 这只允许10个数字,其中最后4个数字用“减号”分隔 我需要让它也允许它不带负号,用空格代替负号: 0123456789 012345 6789 如何重新生成此regexp以允许所需内容 谢谢var nrExp=/^\d{6}\[\-]?\d{4}$/ 这应该可以做到-空白或破折号,由?var nrExp=/^\d{6}\[\-]?\d{4}$/ var re = /^\d{6}[\
var nrExp = /^\d{6}\-\d{4}$/;
这只允许10个数字,其中最后4个数字用“减号”分隔
我需要让它也允许它不带负号,用空格代替负号:
0123456789
012345 6789
如何重新生成此regexp以允许所需内容
谢谢
var nrExp=/^\d{6}\[\-]?\d{4}$/代码>
这应该可以做到-空白或破折号,由?var nrExp=/^\d{6}\[\-]?\d{4}$/代码>
var re = /^\d{6}[\- ]?\d{4}$/
console.log(re.test('012345-6789'));
console.log(re.test('012345 6789'));
console.log(re.test('0123456789'));
这样就可以了——空白或破折号,由?当然可以。您只需要将减号与其他几个字符一起设置为可选
var re = /^\d{6}[\- ]?\d{4}$/
console.log(re.test('012345-6789'));
console.log(re.test('012345 6789'));
console.log(re.test('0123456789'));
试试这个:
var nrExp = /^\d{6}(\-| )?\d{4}$/;
注意(\-|)
后面的?
。这允许匹配部分是可选的。当然。您只需要将减号与其他几个字符一起设置为可选
/^\d{6}[- ]?\d{4}$/
试试这个:
var nrExp = /^\d{6}(\-| )?\d{4}$/;
注意(\-|)
后面的?
。这允许匹配部分是可选的
/^\d{6}[- ]?\d{4}$/
您不需要在括号内转义负号,因为它不提供范围
你不需要避开括号内的负号,因为它没有给出一个范围。应该可以,但它有点难看。(1) -
根本不需要在[]
块外转义。(2) 如果您要匹配两个可能的字符中的一个,而不是字符串,[-]
比(\-)
更合适(并且不像您的示例那样,不会创建捕获组)。@cHao感谢您的建议。考虑一下,他可能想在将来增加其他角色。我知道它也适用于character类,我只是太习惯于使用多字符分隔符,我倾向于使用()
。应该可以,但有点难看。(1) -
根本不需要在[]
块外转义。(2) 如果您要匹配两个可能的字符中的一个,而不是字符串,[-]
比(\-)
更合适(并且不像您的示例那样,不会创建捕获组)。@cHao感谢您的建议。考虑一下,他可能想在将来增加其他角色。我知道它也适用于character类,我只是太习惯于使用多字符分隔符,我倾向于使用()
。