以下代码执行后,result 的值为 [“75team2017”]

发布时间 2023-11-10 15:42:35作者: 龙陌

var result = "75team2017".match(/\d+\w*/g);

match() 方法检索返回一个字符串匹配正则表达式的结果,匹配成功则返回数组,失败则返回null。
在正则表达式中,\d表示匹配数字0-9,+表示匹配前面字符一次或者多次,\w表示匹配字母、数字或者下划线,表示匹配前面字符0次或者多次,修饰符g表示全局匹配。
由于+和
都是贪婪匹配,所以\d+匹配到75,\w*匹配到team2017,此时字符串已被全部匹配,故返回的result数组中,只有一个数组元素,即字符串75team2017

正则 定义
\d 匹配一个数字,等价于[0-9]
\w 匹配字母、数字或者下划线,等价于 [A-Za-z0-9_]

  • 匹配前面一个表达式 1 次或者多次
  • 匹配前一个表达式 0 次或多次
    /g 全局匹配

因为"+"和""都是贪婪匹配,它们会尽可能多地匹配字符,
所以"\d+"匹配"75","\w
"匹配"team2017",而"/g"就没有表演的机会了。