栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

计算JavaScript中正则表达式的匹配数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算JavaScript中正则表达式的匹配数

tl; dr:通用模式计数器

// THIS IS WHAT YOU NEEDconst count = (str) => {  const re = /YOUR_PATTERN_HERE/g  return ((str || '').match(re) || []).length}

对于那些来到这里的人来说,他们正在寻找一种通用的方法来计算字符串中正则表达式模式的出现次数,并且如果出现的次数为零,也不希望它失败,那么您需要的是这段代码。这是一个示范:

const count = (str) => {  const re = /[a-z]{3}/g  return ((str || '').match(re) || []).length}const str1 = 'abc, def, ghi'const str2 = 'ABC, DEF, GHI'console.log(`'${str1}' has ${count(str1)} occurrences of pattern '/[a-z]{3}/g'`)console.log(`'${str2}' has ${count(str2)} occurrences of pattern '/[a-z]{3}/g'`)

原始答案

初始代码的问题是缺少全局标识符:

>>> 'hi there how are you'.match(/s/g).length;4

没有

g
正则表达式的部分,它将仅匹配第一个匹配项并在此停止。

还要注意,您的正则表达式将对连续的空格计数两次:

>>> 'hi  there'.match(/s/g).length;2

如果不希望这样做,则可以执行以下操作:

>>> 'hi  there'.match(/s+/g).length;1


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号