一個正則表達式,用於表示字符串中至少有10個數字字符。至少x個數字字符的javascript正則表達式
可以有10多個,但不能少於10個。 在隨機的地方可以有任意數量的其他字符,將數字分開。
示例數據:
(123) 456-7890
123-456-7890 ext 41
1234567890
etc.
一個正則表達式,用於表示字符串中至少有10個數字字符。至少x個數字字符的javascript正則表達式
可以有10多個,但不能少於10個。 在隨機的地方可以有任意數量的其他字符,將數字分開。
示例數據:
(123) 456-7890
123-456-7890 ext 41
1234567890
etc.
爲了確保在免得10位是有使用這個表達式:
/^(\D*\d){10}/
代碼:
var valid = /^(\D*\d){10}/.test(str);
測試:
console.log(/^(\D*\d){10}/.test('123-456-7890 ext 41')); // true
console.log(/^(\D*\d){10}/.test('123-456-789')); // false
EXPL anation:
^ assert position at start of the string
1st Capturing group (\D*\d){10}
Quantifier: Exactly 10 times
Note: A repeated capturing group will only capture the last iteration.
Put a capturing group around the repeated group to capture all iterations or use a
non-capturing group instead if you're not interested in the data
\D* match any character that's not a digit [^0-9]
Quantifier: Between zero and unlimited times, as many times as possible
\d match a digit [0-9]
它可能簡單到只是擺脫所有的非數字字符,算還剩下什麼:
var valid = input.replace(/[^\d]/g, '').length >= 10
注:.replace
不會修改原始字符串。
(\d\D*){10}
一個數字,隨後通過任何數目的非數字,十次。
'/ \ d {10} \ d */g'? –