2014-10-02 120 views
0

我想使用JavaScript正則表達式來測試我的字符串是否與正則表達式匹配。但是,我試圖使用的正則表達式會導致我的javascript中斷。javascript正則表達式不允許我的表達式

我明白,我通常可以做到以下幾點:

/e/.test("blah") 

,但是當我嘗試使用我的表情,我的瀏覽器barfs:

/(?<=^|)\d+(\.\d+)?(?=$|)|(?<=^|)\.\d+(?=$|)/.test("1.23") 

我缺少什麼?

+1

JavaScript不支持隱藏斷言。 – hwnd 2014-10-02 22:46:46

+1

爲什麼標記爲R? – 2014-10-02 22:47:28

回答

2

Javascript不支持Negative or Positive Lookbehind聲明。因此,您的瀏覽器應該拋出一個錯誤的正則表達式無效:(無效組),因爲正回顧後(?<=^|)的...

我就開始用字符串^和字符串$錨結束的開始..

/^\d+(?:\.\d+)?$/.test("1.23") 

如果你真的想斷言串/空格或串/空格位置月底開始,你可以使用捕獲組,而不是環視斷言,因爲你只使用測試方法編譯它們。

/(^|) PATTERN ($|)/