首页 > 解决方案 > 正则表达式匹配jsx中的className

问题描述

我有以下文本文件,我想从中提取className属性。

<div className={classes} {...attributes} onClick={ev => toggleAccordion(ev.target)}>
   {content ? (<h3 className="no-margin text-medium main-heading text-heading" style={{pointerEvents: 'none'}}>
   {content}

目标:

  1. 匹配className="no-margin text-medium main-heading text-heading"- (通过)
  2. 匹配className={classes}- (失败)

我尝试过的正则表达式和结果:

  1. className\s*=\s*["\{]匹配两者className="className={
  2. className\s*=\s*["\{].+同时匹配className={classes} {...attributes} onClick={ev => toggleAccordion(ev.target)}>className="no-margin text-medium main-heading text-heading" style={{pointerEvents: 'none'}}>
  3. className\s*=\s*["\{].+"比赛className="no-margin text-medium main-heading text-heading" (目标之一)
  4. className\s*=\s*["\{].+\}比赛className={classes} {...attributes} onClick={ev => toggleAccordion(ev.target)}className="no-margin text-medium main-heading text-heading" style={{pointerEvents: 'none'}}

所有人都在使用全局/g标志。

标签: javascriptregex

解决方案


试试这个: className\s*=\s*[\"{]([^\"}]*)?[\"}]

演示在这里


推荐阅读