[英]simple regex /:[a-z]+/ not working as expected in javascript
[英]Simple regex not working in Javascript
我的正則表達式是下一個
/^(\.\w*)|(\d*\.?\d*)$/
它應該可以很好地用於浮點數( 123.23
, 12.
, .56
),並且從點開始的任何話。
我什么時候感到困惑
/^(\\.\\w*)|(\\d*\\.?\\d*)$/.test("qweasdzxc"); // return true
但沒有OR:
/^(\.\w*)$/.test("qweasdzxc"); // return false
/^(\d*\.?\d*)$/.test("qweasdzxc"); // return false
在RegexPal上一切正常
它應該是
/^((\.\w*)|(\d*\.?\d*))$/
您需要將兩個OR條件包裝在另一個(..)
。
否則將其解釋為^(\\.\\w*)
或(\\d*\\.?\\d*)$
而不是^
和( (\\.\\w*)
或(\\d*\\.?\\d*)
)和$
。
演示: 小提琴
嘗試這個
/^((\.\w*)|(\d*\.?\d*))$/.test("qweasdzxc"); // false
/^((\.\w*)|(\d*\.?\d*))$/.test(".5"); // true
您必須封裝正則表達式條件(A | B)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.