下面是我的正則表達式。正則表達式返回true,即使逗號不用雙引號括起來
/^\\"[a-zA-Z0-9!#\$%&\\'\*\+-\/=\?\^_`{\|}~;,:<>()@\[\]]*\\"$/
這是一個事實,即使在雙引號中不包含逗號,這是返回true正常工作分開。 爲什麼它顯示逗號的奇怪行爲。
例如a:b沒有引號返回false,而a,b沒有引號返回true。
專家可以請你幫
下面是我的正則表達式。正則表達式返回true,即使逗號不用雙引號括起來
/^\\"[a-zA-Z0-9!#\$%&\\'\*\+-\/=\?\^_`{\|}~;,:<>()@\[\]]*\\"$/
這是一個事實,即使在雙引號中不包含逗號,這是返回true正常工作分開。 爲什麼它顯示逗號的奇怪行爲。
例如a:b沒有引號返回false,而a,b沒有引號返回true。
專家可以請你幫
因爲你在這裏創建一個字符範圍:
/^\\"[a-zA-Z0-9!#\$%&\\'\*\+-\/=\?\^_`{\|}~;,:<>()@\[\]]*\\"$/
^^^^^
這意味着從+
到/
所有字符,這也包括,
。
在一個字符類中,你不需要轉義正常的正則表達式特殊字符,但是還有另外一個字符,它會得到一個特殊的含義-
。
所以正確的字符類將是
/^\\"[a-zA-Z0-9!#$%&\\'*+\-\/=?^_`{\|}~;,:<>()@\[\]]*\\"$/
另一種方法是把-
在開始或字符類的結尾,在這情況下,它不會創建一個範圍,並且不需要逃跑。
非常感謝您的幫助Stema。然而,這個新的字符類沒有解決問題 –
在javascript中它取決於你如何創建正則表達式,也許你需要雙重轉義,意味着'\\ - ' – stema
嘿Stema道歉爲我以前的評論。修改後的reg-ex提供你做了工作。我早先錯誤地實施了它......再次感謝很多:) –
你正在執行哪個文本正則表達式?你能否提供一個小例子,以便我可以爲你測試?正則表達式應該做什麼? – Sheridan
你想匹配什麼?只是拋出一個像這樣的長長的正則表達式,而沒有提及你希望它匹配(或測試)的東西將會使人們很難幫助你。 –
嗯,我正在檢查文本和字符是否用雙引號(轉義)括起來。如果字符沒有用引號括起來,那麼它應該返回false.So以不包含在引號中的示例firstname:lastname或返回false所期望的效果。然而,名字,姓氏返回是不正確的。理想的「名字,姓氏」應該是真的 –