2014-01-07 83 views
0

我currnetly有以下的javascript whicih完全適用於正數和小數積極或消極的小數,但它不會讓我輸入一個負只允許在一個領域

this.value = this.value.replace(/[^0-9\.]/g, ''); 

我嘗試了以下組合,帶沒有運氣。請幫忙。

(\+|-)?([0-9]+(\.[0-9]+)) 

回答

2

如果你想限制輸入號碼,使用HTML5 number輸入類型:

<input type="number"> 

this.value = this.value.replace意味着你這樣做是對inputkeyup或類似的東西,這真的沒有按」如果用戶決定移除他們的口號,那麼就工作了。

您可以隨時驗證整個事情事後對於不支持的瀏覽器:

var value = +someInput.value; // parseFloat(someInput.value) if you prefer 

if (isNaN(value)) { 
    // Not valid. 
} 
1

試試這個:

var re = /(?:\+|-)?[0-9]+(\.[0-9]+)?/gm; 
var str = '654654\n-654654'; 

str.match(re); 

regex101 example

我重新您從正則表達式(\+|-)?([0-9]+(\.[0-9]+))(?:\+|-)?[0-9]+(\.[0-9]+)?,因爲這些羣體有點混淆(其實我覺得這是問題,因爲有其他o.õ內一組)

編輯:

有更有效的方法來做到這一點,像其他的響應[:

+1

爲什麼不用'/ [+ - ]?[0-9] +(?:\。[0-9] +)?/ g'? – hwnd

+0

都意味着相同,但我會逃避'+'字符...... –

+0

您不需要在字符類中轉義它。 – hwnd