2014-09-22 67 views
-4

我有一個正則表達式,除了負值和帶小數點的值,但我現在不能接受','和'+'符號 它接受 123-123-12.312.3 但我想它接受12,345+123+123.4正則表達式接受貨幣符號和'+'符號

這裏是表達

var valid = (input.match(/^-?\d+(?:\.\d+)?$/)); 
     if(!valid) 
     { 
     control.value=""; 
     alert('Invalid Value') 
     } 
+1

接受'12,345'? 。它是否也接受'1,23'? – TheLostMind 2014-09-22 07:25:35

+0

如果你寫了原始的正則表達式,這將是一件小事。 – Marty 2014-09-22 07:26:40

+0

是的,它可以基本上我想我的表達除了逗號和一個+號在它.. – 2014-09-22 07:26:43

回答

1

[-+]?\d+[.,]?\d+可能只是伎倆。

demo here

PS:這不會驗證正確的數字格式。即1,2也將匹配(根據您的評論,它應該匹配)。

0

使用本:

var input = "+123.6" 
var valid = (input.match(/^[-+]?[\d,+.]+$/)); 
if (!valid) 
{ 
    alert('Invalid Value') 
} 
+1

你的正則表達式將匹配'55,'或'55 +'。 – TheLostMind 2014-09-22 07:31:12

1

我想你想這樣的事情,

^[-+]?\d+(,\d+)?(?:\.\d+)?$ 

DEMO

0

試試這個..

var valid = (input.match(/^[-+]?\d+(?:[\.\,]\d+)?$/)); 
     if(!valid) 
     { 
     control.value=""; 
     alert('Invalid Value') 
     } 

FIDDLE