繁体   English   中英

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

[英]What does this `/^.*$/` regex match?

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

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

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

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

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

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

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

它匹配单行文本。

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

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

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

regexp检查字符串是否包含任何\\n\\r \\n 点与新线不匹配。

例子:

/^.*$/.test("");  // => true
/^.*$/.test("aoeu");  // => true
/^.*$/.test("aoeu\n");  // => false
/^.*$/.test("\n");  // => false
/^.*$/.test("aoeu\nfoo");  // => false
/^.*$/.test("\nfoo");  // => false

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM