问一个js正则问题?

我想匹配一段字符串中所有的input 并使用replace进行替换,如果input里面有类似data-* 这种自定义属性的就跳过
不知道这种正则该怎么写,我也阅读了文档并使用google。都没找到
比如 <input type='text' /> 这种Input就匹配,<input data-xxx /> 带有自定义属性的input 正则则不匹配

阅读 2.5k
3 个回答

image.png

试试看:<input\b(?![^>]*data-)[^>]*>

  • \b:确保匹配的是一个完整的单词。
  • (?![^>]*data-):负向前瞻断言,用于排除包含"data-"开头的属性名。
  • [^>]*>:匹配任意数量的非">"字符,直到遇到">"结束(这样也不用判断标签是否闭合了)

简单测试了一下,应该没问题

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