当我遇到麻烦时,我正在维护一些旧代码。我对这种正则表达式模式感到困惑:(/^.*$/
作为参数提供textFieldValidation(this,'true',/^.*$/,'',''
)。
我将此正则表达式解释为:
- /^=打开模式
- .=匹配任何值的单个字符(EOL 除外)
- *=匹配 0 次或多次
- $=匹配行尾
- /=关闭模式
所以……我认为这种模式匹配所有内容,这意味着该函数除了浪费处理周期之外什么都不做。我对么?
当我遇到麻烦时,我正在维护一些旧代码。我对这种正则表达式模式感到困惑:(/^.*$/
作为参数提供textFieldValidation(this,'true',/^.*$/,'',''
)。
我将此正则表达式解释为:
所以……我认为这种模式匹配所有内容,这意味着该函数除了浪费处理周期之外什么都不做。我对么?
它匹配单行文本。
它将无法匹配多行字符串,因为^
匹配输入的开头,并$
匹配输入的结尾。如果中间有任何换行符 ( \n
) 或插入符号返回 ( \r
) 符号 - 它会失败。
例如,'foo'.match(/^.*$/)
返回foo
.
但'foo\nfoo'.match(/^.*$/)
回报null
。
正则表达式检查字符串不包含任何\n
or \r
。点与换行符不匹配。
例子:
/^.*$/.test(""); // => true
/^.*$/.test("aoeu"); // => true
/^.*$/.test("aoeu\n"); // => false
/^.*$/.test("\n"); // => false
/^.*$/.test("aoeu\nfoo"); // => false
/^.*$/.test("\nfoo"); // => false
是的,你说得很对。此正则表达式匹配任何不包含 EOL 的字符串(如果 dotall=false)或任何字符串(如果 dotall=true)