簡體   English   中英

正則表達式只接受正數和小數

[英]Regular Expression to accept only positive numbers and decimals

我需要一個 javascript 中的正則表達式,它只接受正數和小數。 這就是我所擁有的,但有些不對勁——它似乎沒有取單個正數。

/^[-]?[0-9]+[\.]?[0-9]+$/;

例如, 9將不起作用。 我該如何重組它,以便如果至少有一個正數,它會起作用?

/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/

火柴

0
+0
1.
1.5
.5

但不是

.
1..5
1.2.3
-1

編輯:

要處理科學記數法 ( 1e6 ),您可能需要這樣做

/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/

如果你想要嚴格的正數,沒有零,你可以這樣做

/^[+]?([1-9][0-9]*(?:[\.][0-9]*)?|0*\.0*[1-9][0-9]*)(?:[eE][+-][0-9]+)?$/

根據您的需要,有幾種不同的方法可以做到這一點:

/^[0-9.]+$/匹配11.1但不匹配-1

/^[0-9]+\\.[0-9]+$/匹配1.1但不匹配1-1

通常,我建議使用簡單的 regExp 參考指南(如http://www.regular-expressions.info/)來構建表達式,然后在瀏覽器控制台中使用 javascript 測試它們:

"123.45".match(/^[0-9.]+$/)

你可以試試這個——

^\d{0,10}(\.\d{0,2})?$

也是一個很酷的站點來測試以及獲取您自己的正則表達式的描述https://regex101.com/

我發現了一些對我有用的有趣的東西!!! 希望你也一樣......!!!

[0-9] .[0-9]

正則表達式只接受帶小數點的正數

匹配:1、2564、2.5545、254.555

不匹配:-333、332.332.332、66-665.455、55554-4552

怎么樣:

^[.]?[0-9]+[.]?[0-9]*$

我做了一個以防人們感興趣:^([0-9]*)(.[[0-9]+]?)?$

但它沒有“+”號,同時也不接受“-”號

它接受:

0
0.5
1.0
1.5
2.0
2.5
3.0
1
2
3
4
0.0
0.1
0.9
0.4
1.3
1.11
1.51
2.01
01.5
0.51
1.1
.1

拒絕:

-1.0
-0.5
-0.0
-0.1
-0.7
11123.
1.001.
.1.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM