6

当我遇到麻烦时,我正在维护一些旧代码。我对这种正则表达式模式感到困惑:(/^.*$/作为参数提供textFieldValidation(this,'true',/^.*$/,'','')。

我将此正则表达式解释为:

  • /^=打开模式
  • .=匹配任何值的单个字符(EOL 除外)
  • *=匹配 0 次或多次
  • $=匹配行尾
  • /=关闭模式

所以……我认为这种模式匹配所有内容,这意味着该函数除了浪费处理周期之外什么都不做。我对么?

4

4 回答 4

5

^“从头说起。”
.“匹配任何东西……”
*“0 次或多次”
$“到行尾。”

是的,你是对的,它匹配空或其他东西。

还有一个方便的小备忘单。

于 2013-05-09T19:44:37.543 回答
5

它匹配单行文本。

它将无法匹配多行字符串,因为^匹配输入的开头,并$匹配输入的结尾。如果中间有任何换行符 ( \n) 或插入符号返回 ( \r) 符号 - 它会失败。

例如,'foo'.match(/^.*$/)返回foo.

'foo\nfoo'.match(/^.*$/)回报null

于 2013-05-09T19:48:08.297 回答
5

正则表达式检查字符串不包含任何\nor \r。点与换行符不匹配。

例子:

/^.*$/.test("");  // => true
/^.*$/.test("aoeu");  // => true
/^.*$/.test("aoeu\n");  // => false
/^.*$/.test("\n");  // => false
/^.*$/.test("aoeu\nfoo");  // => false
/^.*$/.test("\nfoo");  // => false
于 2013-05-09T19:50:33.050 回答
1

是的,你说得很对。此正则表达式匹配任何不包含 EOL 的字符串(如果 dotall=false)或任何字符串(如果 dotall=true)

于 2013-05-09T19:42:16.637 回答