请教一个正则正则表达式的问题

postfix2 2018-05-18 09:16:26
var preg = /(<(select).*?(<\/select>))/gi;
我用上面这个正则表达式匹配字符串中的select控件,下面的字符串,只能匹配空的select控件,带有option值的不能匹配,请问这个正则表达式该怎么写呢?


"<table data-sort="sortDisabled"><tbody><tr class="firstRow"><td width="92" valign="middle" style="word-break: break-all;" align="right">标题</td><td valign="top" rowspan="1" colspan="3" width="849" style="word-break: break-all;"><p><br/></p><p><select name="==HGDW==" title="HGDW" leipiplugins="select" size="1" data-options="-1" id="HGDW" orgwidth="150" style="width: 150px;"></select></p></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right">性别</td><td valign="top" rowspan="1" colspan="3" width="132" style="word-break: break-all;"><select name="==NGDW==" title="NGDW" leipiplugins="select" size="1" data-options="task_1516850618863" id="NGDW" orgwidth="150" style="width: 150px;"><option value="1">男</option></select></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right"><br/></td><td valign="top" rowspan="1" colspan="3" width="132"><br/></td></tr></tbody></table>"
...全文
198 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcwtitxu 2018-05-18
  • 打赏
  • 举报
回复
要匹配任意字符你可以改用 /(<(select)[\s\S]*?(<\/select>))/gi
postfix2 2018-05-18
  • 打赏
  • 举报
回复
var source = "<table data-sort="sortDisabled"><tbody><tr class="firstRow"><td width="92" valign="middle" style="word-break: break-all;" align="right">标题</td><td valign="top" rowspan="1" colspan="3" width="849" style="word-break: break-all;"><p><br/></p><p><select name="==HGDW==" title="HGDW" leipiplugins="select" size="1" data-options="-1" id="HGDW" orgwidth="150" style="width: 150px;"></select></p></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right">性别</td><td valign="top" rowspan="1" colspan="3" width="132" style="word-break: break-all;"><select name="==NGDW==" title="NGDW" leipiplugins="select" size="1" data-options="task_1516850618863" id="NGDW" orgwidth="150" style="width: 150px;"><option value="1">男</option></select></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right"><br/></td><td valign="top" rowspan="1" colspan="3" width="132"><br/></td></tr></tbody></table>" var preg = /(<(select).*?(<\/select>))/gi; source.replace(preg, function(plugin,p1,p2,p3,p4,p5,p6){ console.log(plugin,p1,p2); }); 我的是这样写的,一直不能匹配空select控件,谢谢,我再看看。
postfix2 2018-05-18
  • 打赏
  • 举报
回复
没错,替换回车符问题完美解决,谢谢。
wcwtitxu 2018-05-18
  • 打赏
  • 举报
回复
可以匹配

s = `<table data-sort="sortDisabled"><tbody><tr class="firstRow"><td width="92" valign="middle" style="word-break: break-all;" align="right">标题</td><td valign="top" rowspan="1" colspan="3" width="849" style="word-break: break-all;"><p><br/></p><p><select name="==HGDW==" title="HGDW" leipiplugins="select" size="1" data-options="-1" id="HGDW" orgwidth="150" style="width: 150px;"></select></p></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right">性别</td><td valign="top" rowspan="1" colspan="3" width="132" style="word-break: break-all;"><select name="==NGDW==" title="NGDW" leipiplugins="select" size="1" data-options="task_1516850618863" id="NGDW" orgwidth="150" style="width: 150px;"><option value="1">男</option></select></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right"><br/></td><td valign="top" rowspan="1" colspan="3" width="132"><br/></td></tr></tbody></table>`
"<table data-sort="sortDisabled"><tbody><tr class="firstRow"><td width="92" valign="middle" style="word-break: break-all;" align="right">标题</td><td valign="top" rowspan="1" colspan="3" width="849" style="word-break: break-all;"><p><br/></p><p><select name="==HGDW==" title="HGDW" leipiplugins="select" size="1" data-options="-1" id="HGDW" orgwidth="150" style="width: 150px;"></select></p></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right">性别</td><td valign="top" rowspan="1" colspan="3" width="132" style="word-break: break-all;"><select name="==NGDW==" title="NGDW" leipiplugins="select" size="1" data-options="task_1516850618863" id="NGDW" orgwidth="150" style="width: 150px;"><option value="1">男</option></select></td></tr><tr><td width="92" valign="middle" style="word-break: break-all;" align="right"><br/></td><td valign="top" rowspan="1" colspan="3" width="132"><br/></td></tr></tbody></table>"
s.match(/(<(select).*?(<\/select>))/gi)



另外要注意的是 . 不匹配换行符,如果匹配过程中有换行符就会匹配失败
postfix2 2018-05-18
  • 打赏
  • 举报
回复
只能匹配空的select控件,有值的匹配不了。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧