我有一個電話號碼,我想數字07是常數,那麼其餘的應該是正則表達式?我將07X XXXX XXX作爲數字使用哪種正則表達式?
礦看起來像這樣:/^\07(?([0-9]{1})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
。
例號碼:0752 8182 12
我有一個電話號碼,我想數字07是常數,那麼其餘的應該是正則表達式?我將07X XXXX XXX作爲數字使用哪種正則表達式?
礦看起來像這樣:/^\07(?([0-9]{1})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
。
例號碼:0752 8182 12
我建議修復您的圖案
/^07\(?([0-9])\)?[-. ]?([0-9]{4})[-. ]?([0-9]{3})$/
您第一(
之前錯過了\
與\07
反斜槓作出的正則表達式引擎將07
部分解析爲八進制值。
圖案的詳細資料:
^
- 字符串的開始07
- 07
\(?
- 可選(
(注,你需要的,如果你這樣做與\)?
一起卸下不想允許像07(5) 4444 333
這樣的值)([0-9])
- 數字(在(
如果你不需要讓所拍攝的潛臺詞)
可以被移除)\)?
- 可選)
[-. ]?
- 可選-
,.
或空間([0-9]{4})
- 4數字(約括號相同的音符)[-. ]?
- 同上([0-9]{3})
- 3位(大約括號相同的音符)$
- 字符串結尾。我清理你的正則表達式一些,你並不需要有,除非你正在做的事情跟團的那些額外的括號:
/^07\(?[0-9]\)?[-. ]?[0-9]{4}[-. ]?[0-9]{3}$/
將匹配這些數字
071 1111 111
077.1151.111
071-3211-121
0711111111
07(1) 1111 111
你沒有提供有效和無效數字的例子,我猜根據你的正則表達式。試試這個:
var numbers = [
"07",
"070 1234 123",
"070-1234-123",
"070.1234.123",
"07(0)1234-123",
"07(0) 1234-123",
"0070 1234 123",
"070 123 1234"
];
//var pattern = /^07\(?([0-9]{1})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
var pattern = /^07\(?\d\)?[-. ]?\d{4}[-. ]?\d{3}$/;
// /d = [0-9]
var matched = numbers.map(function (number) {
var matches = number.match(pattern);
if (matches) {
console.log(number + " valid");
} else {
console.log(number + " invalid");
}
});
輸出是:
07valid
070 1234 123 valid
070-1234-123 valid
070.1234.123 valid
07(0)1234-123 valid
07(0) 1234-123 valid
0070 1234 123 invalid
070 123 1234 invalid
嘗試工具,如Regexr,看你如何到達那裏了。 – TankorSmash
真的嗎?(?'?你有沒有在括號之前忽略'''''\ 07'並且將其解析爲一個八進制值,刪除那個''''。 –
你可以給出一些示例數字看起來匹配? – ericbowden