我试图使用RegExp()
接受下列输入:正则表达式为电话号码
- 12-34-56-78-90
- 12.34 .56.78.90
- 12 34.56-7890
我一直在尝试使用方法是:
([0-9]{2,2}[ |-|.]?){4,4}[0-9]{2,2}
我理解为:(数字2倍,后面跟着空格或 - 或。或什么都不)4次,然后数字2次。
我一直在测试[0-9]{2,2}
它甚至不表现为我意料之中的,因为它接受至少 2位数,而不是准确 2位数。
我试图使用RegExp()
接受下列输入:正则表达式为电话号码
我一直在尝试使用方法是:
([0-9]{2,2}[ |-|.]?){4,4}[0-9]{2,2}
我理解为:(数字2倍,后面跟着空格或 - 或。或什么都不)4次,然后数字2次。
我一直在测试[0-9]{2,2}
它甚至不表现为我意料之中的,因为它接受至少 2位数,而不是准确 2位数。
这是伟大的,thx让我发现regex101.com!然而它不起作用在var exp = new RegExp(“...”); exp.test(MyString的)。我知道这与表达无关,但我使用RegExp。任何提示? –
如果您使用'new RegExp(“...”);',您需要转义所有反斜杠:'^ \\ d {2}([.-]?)\\ d {2}(?:\ \ 1 \\ d {2}){3} $'。直接使用'/^\ d {2}([.-]?)\ d {2}(?:\ 1 \ d {2}){3} $ /。test(mystring)'。请参阅https://jsfiddle.net/sp00m/rvmzyfc0/。 – sp00m
var mob=/^([0-9]{2}(\s|\.|\-)){4}[0-9]{2}$/;
console.log(mob.test("12.34.56.78.90"));
console.log(mob.test("12-34-56-78-90"));
console.log(mob.test("12 34 56 78 90"));
var mob=/^([0-9]{2}(\s|\.|\-)?){4}[0-9]{2}$/;
console.log(mob.test("1234567890"));
console.log(mob.test("12 34 56 78 90"));
'(\ s | \。| \ - )'可以被重写'[\ s .-]'; '\ s'包括标签,换页和换行,不确定应该被允许; '[0-9]'可以重写'\ d'。 – sp00m
使用锚点,'^'和'$'。 '{2,2}'='{2}'。而''| - |。]'应该写成'[.-]'。 –
你能描述一下什么模式应该匹配,哪些不匹配?也许在开始时删除所有非数字值并比检查长度/区域代码更容易? – Justinas
'|在一个字符类中不是'或'它们是字面字符。 '-'是一个范围。 – chris85