再混点分。 var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"]; var allowArray=["ab","c","ef"]; var reg = new RegExp("<\/?("+allowArray.join("|") + ")(\s|>)","g"); result =matches.join(",").match(reg) alert(result)
原来\s被转义了,再换一个。 var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"]; var allowArray=["ab","c","ef"]; var reg = new RegExp("<\/?("+allowArray.join("|") + ")(\\s+.*?>|>)","g"); result = matches.join(",").match(reg) alert(result)
接分儿 var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"]; var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>| )','g') var rs = matches.join(',').match(reg); alert(rs&&rs.join('\n')||false);
接分儿 var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"]; var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>| )','g') var rs = matches.join(',').match(reg); alert(rs&&rs.join('\n')||false);
汗~ CSDN系统有问题吧? 发了两遍?
一直到后面的> 没看清 <script> var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"]; var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>|\\s.*?>)','g') var rs = matches.join(',').match(reg); alert(rs&&rs.join('\n')||false); </script>
过来学习一下,我js水平 和楼主比不了, 我用使用正则,用遍历的时候比较多。我是从cs方向转到网站的 努力学习javascript ing
var matches=["<ab>","</ ab>","<cd>","<cd />","<ef poiuyt>"];var reg = new RegExp("<(?:\/\\s*)?("+allowArray.join("|") + ")(?:\\s+.*?)?>","g");
var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"];
var allowArray=["ab","c","ef"];
var reg = new RegExp("<\/?("+allowArray.join("|") + ")(\s|>)","g");
result =matches.join(",").match(reg)
alert(result)
var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"];
var allowArray=["ab","c","ef"];
var reg = new RegExp("<\/?("+allowArray.join("|") + ")(\\s+.*?>|>)","g");
result = matches.join(",").match(reg)
alert(result)
var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"];
var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>| )','g')
var rs = matches.join(',').match(reg);
alert(rs&&rs.join('\n')||false);
var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"];
var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>| )','g')
var rs = matches.join(',').match(reg);
alert(rs&&rs.join('\n')||false);
没看清
<script>
var matches=["<ab>","</ab>","<cd>","<cd />","<ef poiuyt>"];
var allowArray=["ab","c","ef"];var reg = new RegExp('<\\/?(?:'+allowArray.join('|')+')(?:>|\\s.*?>)','g')
var rs = matches.join(',').match(reg);
alert(rs&&rs.join('\n')||false);
</script>
我用使用正则,用遍历的时候比较多。我是从cs方向转到网站的 努力学习javascript ing
window.onload = function() {
var matches = ['<ab>', '<ab>', '<cd>', '<cd />', '<ef poiuyt>'];
var allowArray=['ab', 'c', 'ef'];
var reg = new RegExp('</?(?:' + allowArray.join('|') + ')\\b[^>]*>', 'g');
var result = matches.join(',').match(reg);
alert(result);
}
</script>由于 / 并非出现在 / / 的正则表达式声明中,也不是正则表达式中的
元字符,所以 / 并不需要使用 \/ 来进行转义。对于捕获组 ( ) 的问题来说,如果不需要对表达式所匹配到的内容进行反向
引用,为了减少几个字节的内存占用,建议采用非捕获组 (?:) 的形式。另外,使用字符串作为正则表达式来拼接的话存在一定的隐患,比如说字
符串中含有正则表达式的元字符(比如 . \ ^ $ ? * + { [ ( | ) ] } 等字符),
这样会造成拼接出来的正则表达式产生错误。