正则表达式 path.match(/user/);.


   var path = '/user/tobi'
   path.match(/user/);
      //result: ["user"]
   path.match(/(user)/);
    //result: ["user", "user”]

为什么添加"(("会导致两个用户的结果?

看看正则表达式文档。

String#match返回由匹配字符串和所有子匹配项组成的数组,由括号中的正则表达式声明。

因为捕获它们的内容是括号在正则表达式中所做的。第 0 个元素是整个匹配,每个后续元素对应于一个"捕获组"(即括号对(,按照它们的引入顺序。

演示:

path.match(/(u)s((e)(r))/)
    //result: ["user", "u", "er", "e", "r"]

由于您没有在正则表达式中指定 g,因此 match 函数的行为为regexp.exec(string(.根据其文档,exec 方法的结果包含匹配的子字符串和捕获括号。

请检查以下网址

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FRegExp%2Fexec

相关内容

最新更新