當我到達頭馬時,我正在維護一些舊代碼。我很困惑這個正則表達式模式:/^.*$/
(作爲參數在textFieldValidation(this,'true',/^.*$/,'',''
提供)。
解讀此正則表達式爲:
- /^ =開放圖案
- =匹配任何值(除EOL)的一個單獨的字符
- * =匹配0次或多次
- 。 $ =該行的比賽結束
- /=關閉模式
所以...我想這拍燕鷗匹配一切,這意味着該功能只會浪費處理週期。我對麼?
當我到達頭馬時,我正在維護一些舊代碼。我很困惑這個正則表達式模式:/^.*$/
(作爲參數在textFieldValidation(this,'true',/^.*$/,'',''
提供)。
解讀此正則表達式爲:
所以...我想這拍燕鷗匹配一切,這意味着該功能只會浪費處理週期。我對麼?
其單個文本行相匹配。
它將無法匹配多行字符串,因爲^
匹配輸入的開頭,並且$
匹配輸入的結尾。如果有任何新行(\n
)或插入符號(\r
)之間的符號 - 它會失敗。例如,'foo'.match(/^.*$/)
返回foo
。
但是'foo\nfoo'.match(/^.*$/)
返回null
。
請注意,它也將無法匹配包含'\ r'的字符串。 – 2013-05-09 19:52:33
謝謝,更正 – 2013-05-09 20:06:03
謝謝奧列格... – 2013-05-09 20:16:07
是的,你是非常正確的。此正則表達式匹配任何不包含EOL的字符串(如果dotall = false)或任何字符串(如果dotall = true)
我不認爲JS有dotall。 – 2013-05-09 19:43:16
我不知道如何在JS中實現正則表達式,但在其他語言中dotall可以使用/../s或將標誌傳遞給編譯函數 – Maxim 2013-05-09 19:45:46
是的,JS沒有/ s標誌。 – 2013-05-09 19:47:04
正則表達式檢查字符串是否不包含任何\n
或\r
。點不符合新行。
實例:
/^.*$/.test(""); // => true
/^.*$/.test("aoeu"); // => true
/^.*$/.test("aoeu\n"); // => false
/^.*$/.test("\n"); // => false
/^.*$/.test("aoeu\nfoo"); // => false
/^.*$/.test("\nfoo"); // => false
謝謝Florian ... – 2013-05-09 20:15:48
我的程序員感官刺痛,五paramerts在JavaScript功能,並且他們中的一個是''true''。這不可能是好 – NicoSantangelo 2013-05-09 19:57:39
@NicoSantangelo:這很可怕 – 2013-05-09 20:03:09