如何匹配HTML标签里面的class类名?

应用场景
我希望能够高亮自定义的一些类名,但是无法区分出不在clasName内部还是外部
image.png
代码示例:

var str = 'className="aic jcc" jcc';
str.match(/(?<=(class.*))\b(aic|jcc)\b/g) // ["aic", "jcc", "jcc"]

我只希望匹配到 className 内部的 aic和jcc

阅读 3.7k
2 个回答

效果:
image.png
正则:
image.png

2021/04/11

我觉得可以分多次处理

str.replaceAll(/class\w*?={?[`"'](.*?)[`"']}?/g, s => s.replace(/\b(aic|jcc)\b/g, s => `@@${s}@@`))

/(?<=class\w*?={?[`"'].*?\b)(aic|jcc)(?=\b.*?[`"']}?)/g

devtool.Console

自认为覆盖了大多数奇怪的地方了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题