这个`/^.*$/`正则表达式匹配什么?

Jer*_*nch 6 javascript regex

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

我把这个正则表达式解释为:

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

所以...我认为这种模式匹配所有东西,这意味着该功能除了浪费处理周期之外什么都不做.我对么?

dou*_*BTV 5

^"从头开始."
."匹配任何东西......"
*"0次或更多次"
$"到最后一行."

是的,你是对的,那匹配空或什么的.

还有一个方便的小作弊表.


Ole*_*eev 5

它匹配单行文本.

它将无法匹配多行String,因为^匹配输入的开头,并$匹配输入的结尾.如果中间有任何新的line(\n)或插入符号return(\r)符号 - 则失败.

例如,'foo'.match(/^.*$/)退货foo.

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


Flo*_*sch 5

正则表达式检查字符串是否包含任何\n\r.点与新线不匹配.

例子:

/^.*$/.test("");  // => true
/^.*$/.test("aoeu");  // => true
/^.*$/.test("aoeu\n");  // => false
/^.*$/.test("\n");  // => false
/^.*$/.test("aoeu\nfoo");  // => false
/^.*$/.test("\nfoo");  // => false
Run Code Online (Sandbox Code Playgroud)