我有這行代碼進行驗證:我怎麼能合併的電話號碼驗證和格式化數
var isValidPhone = /^\+?[\d- ]{7,15}$/.test(this.val());
而且我希望有在同一個地方的數字格式,是這樣的:
(/(\d{3})\-?(\d{7})/,'$1-$2'))
我該如何合併它們?
我希望手機爲0-xxxxxxxxx並結束。
我有這行代碼進行驗證:我怎麼能合併的電話號碼驗證和格式化數
var isValidPhone = /^\+?[\d- ]{7,15}$/.test(this.val());
而且我希望有在同一個地方的數字格式,是這樣的:
(/(\d{3})\-?(\d{7})/,'$1-$2'))
我該如何合併它們?
我希望手機爲0-xxxxxxxxx並結束。
編輯:
你需要做這樣的事情 -
var num = "1234567890";
var original = num;//for comparing later
//edited new line :
/^\+?[\d- ]{7,15}$/.test(num) || num.replace(/(\d{3})\-?(\d{7})/, '$1-$2');//checks if num is valid, if not then tries to replace
if(original != num)
{
//number is in correct format, variable 'num' contains newly formatted number if it wasnt in correct format already
}
else
{
//number NOT in correct format!
}
如果格式化的數量不一樣原來那麼這將意味着正則表達式得到匹配,這意味着數爲正確的格式。如果它們相同,則意味着正則表達式不匹配,所以編號格式不正確。
您可以直接格式化數字,然後將包含原始數字的字符串與新數字進行比較。如果數字發生了變化,那麼它表示正則表達式匹配,所以如果沒有正則表達式,那麼正則表達式不能匹配如此無效的數字。 – Zeus
你能告訴我代碼是怎麼樣的嗎? – shma1001