^((\w+)|(\\.))+$/
表示字符序列或反斜杠序列后跟任何字符的匹配。 但为什么它不能将“form:update”与“form”匹配
var pattern = /^(\w+)|(\\.)$/;
var s=pattern.exec("form:update");
alert(s);
匹配字符串“form”, 但是对于外括号,它没有。
并且两个内括号用于captrue?外面的也? 这个例子我得到了一些小事。
var pattern = /^((\w+)|(\\.))+$/;
var s=pattern.exec("form\\.update\\.whatever");
为什么s [1] =无论如何,s [2] =无论如何,s [3] = \。
答案 0 :(得分:2)
它说
从字符串的开头,匹配一个单词序列,如果遇到反斜杠,匹配它并匹配后面的一个字符(不关心什么),然后尝试匹配另一个单词序列,并循环直到字符串的结尾。
var pattern = /^((\w+)|(\\.))+$/;
var s = pattern.exec("form\\.update\\.whatever");
匹配顺序为form
\.
update
\.
whatever
请注意\\
表示javascript正则表达式和字符串中的\
。 .
仅表示正则表达式中的一个“任何字符”。
如果您将.
替换为任何可用的字符,请说明
var pattern = /^((\w+)|(\\.))+$/;
var s = pattern.exec("form\\5update\\4whatever");
匹配顺序为form
\5
update
\4
whatever
为什么s [1] =无论如何,s [2] =无论如何,s [3] =。
这是因为javascript只保留表单(...)+
,
第一组的捕获是form
\.
update
\.
whatever
,因此您获得whatever
第二组的抓取次数为form
update
whatever
,因此您获得whatever
第三组的抓取次数为\.
\.
,因此您获得\.