我試圖使用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