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

时间:2013-05-09 19:39:11

标签: javascript regex

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

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

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

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

4 个答案:

答案 0 :(得分:5)

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

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

a handy little cheat sheet.

答案 1 :(得分:5)

匹配单行文字。

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

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

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

答案 2 :(得分:5)

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

示例:

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

答案 3 :(得分:1)

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