2017-03-02 27 views
0

我有這行代碼進行驗證:我怎麼能合併的電話號碼驗證和格式化數

var isValidPhone = /^\+?[\d- ]{7,15}$/.test(this.val()); 

而且我希望有在同一個地方的數字格式,是這樣的:

(/(\d{3})\-?(\d{7})/,'$1-$2')) 

我該如何合併它們?

我希望手機爲0-xxxxxxxxx並結束。

+0

您可以直接格式化數字,然後將包含原始數字的字符串與新數字進行比較。如果數字發生了變化,那麼它表示正則表達式匹配,所以如果沒有正則表達式,那麼正則表達式不能匹配如此無效的數字。 – Zeus

+0

你能告訴我代碼是怎麼樣的嗎? – shma1001

回答

0

編輯:

你需要做這樣的事情 -

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! 
} 

如果格式化的數量不一樣原來那麼這將意味着正則表達式得到匹配,這意味着數爲正確的格式。如果它們相同,則意味着正則表達式不匹配,所以編號格式不正確。

+0

感謝您的回答。其實我想要做的是:如果用戶把號碼作爲0xx-xxxxxxx它的有效和現在工作正常。我想更改將號碼設置爲xxxxxxxxxx爲0xx-xxxxxxx的用戶號碼 – shma1001

+0

@ shma1001編輯了答案,請參閱編輯代碼。 – Zeus