2013-04-23 20 views
0

我只想要一個字段允許所有類型的數字:整數,小數,負數......和所有類型的組合。不需要逗號。正則表達式允許所有類型的數字

這是我在3天左右與它戰鬥得到的最接近:

/^[\.\-\d]*?$[1-9][\.\-\d]*?$/ 

這不允許整數!我不明白什麼是錯的,有人可以解釋如何做到這一點?

+1

如果你需要正則表達式的幫助,你可以下載這個小工具,它非常簡單,並且在過去幫助過我。順便說一句:正則表達式很複雜,但功能非常強大 – Kenneth 2013-04-23 18:01:25

+1

請求鏈接和教程超出了堆棧溢出的範圍。另外,你的問題主要是一個咆哮,我試圖把它變得更有建設性和簡潔。 – LittleBobbyTables 2013-04-23 18:03:30

+1

我明白了這個開始陡峭的學習曲線。這是一種獨特的簡明語言。在這裏,頁面中的這些人是否符合需要? http://www.regular-expressions.info/floatingpoint.html – 2013-04-23 18:03:46

回答

6

下面應該工作:

/^-?\d*\.?\d+$/ 

說明:

^  # start of string anchor 
-?  # match a '-', optional 
\d*  # match zero or more digits 
\.?  # match a '.', optional 
\d+  # match one or more digits 
$  # end of string anchor 
0

這裏是十進制數字的正則表達式:

/^-?(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/ 

進行分解:

  • 從字符串的開始...
  • 可選匹配減號
  • 或者:
    • 比賽最多3位數字
    • 可選,匹配任意數量的(逗號後面的三個數字)千位分隔符]
  • 或者:
    • 匹配任何數量的數字[無千位分隔符]
  • 可選匹配小數點後跟任意數字的數字。
  • 檢查您已達到字符串的末尾。
1

這對我的作品

string="some text with the number -123456.789 in it"; 
alert(string.replace(/[^-\d+.]/g,'')); 
1

試試這個:

/^[-+]?\d*\.?\d*$/ 

注意,這將匹配 「6」, 「+5.3」, 「4」,而不是「4.4。 0「

這與FJ答案類似,但允許有正負號的輸入並允許數字以」。「結尾。

相關問題