2016-05-10 65 views
-3

我使用jQuery進行輸入過濾,通過使用.replace來檢查任何不需要的字符。jQuery替換正則表達式

$(this).val($(this).val().replace(/[^0-9\+\W]/gi, "")); 

簡單,我只想讓電話號碼,無論是+440領先。 當我使用http://Regexr.com與正則表達式,/[^0-9\+\W]/gi我可以得到我想要的結果。 (任何非電話都被刪除)。

我的問題是,當我用jQuery .replace使用相同的正則表達式時,我得到不同的結果。我不能使用前導零,也不能領先+

我設置一個的jsfiddle證明:FIDDLE

回答

0

您正在使用的輸入類型number這將不會允許這些,所以使用text類型,而不是

號:HTML5一種用於控制輸入一個浮點數。 (來自here兩者)​​

$("#in").on('input', function() { 
 
    $(this).val(function(i, v) { 
 
    return v.replace(/[^0-9\+\W]/gi, ""); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input id="in" value="help" type="text" />

+0

啊冷靜,感謝您的幫助:) –

+0

@Simon。 :很樂意幫助 –

+0

現在,您可以在該字段中鍵入'++++++''。 –