如
<select multiple="multiple" size="3" name="aaa">
<option value="a" selected="selected">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select> sdadasd<select size="3" name="adassa">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
我希望写一个正则能匹配select标签和它的内容,不包含标签外的内容。然后可以用match()来返回两个数组
<select multiple="multiple" size="3" name="aaa">
<option value="a" selected="selected">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select> sdadasd<select size="3" name="adassa">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
我希望写一个正则能匹配select标签和它的内容,不包含标签外的内容。然后可以用match()来返回两个数组
上面是我写的,但是不对,它把两个select做为一个返回了。
谁能帮下我。谢谢
<script type="text/javascript">
<!--
var str = '<select multiple="multiple" size="3" name="aaa">'
+ '<option value="a" selected="selected">a</option>'
+ '<option value="b">b</option>'
+ '<option value="c">c</option>'
+ '</select>'
+ 'sdadasd' + '<select size="3" name="adassa">'
+ '<option value="1" selected="selected">1</option>'
+ '<option value="2">2</option>'
+ '<option value="3">3</option>'
+ '</select>'; var reg = /<select[^>]*>.*?<\/select>/g
alert(str.match(reg)[0] + '\r\n--------------------------\r\n' + str.match(reg)[1]);
//-->
</script>
我只是按照你开始说的 匹配<select></select>中的内容 没看这个sdadasd没匹配吗?
晕 希望你提问题的时候 想好了 一次性提出来
你这么说 我还是不明白 那你意思是 如果有这些字符是怎么办?
整个select内容都不要了?
还是把这几个特殊字符过滤?
还是??
<script type="text/javascript">
<!--
var str = '<select multiple="multiple" size="3" name="aaa">'
+ '<option value="a" selected="selected">a</option>'
+ '<option value="b">b#$%@汉字留住</option>'
+ '<option value="c">c**@@#</option>'
+ '</select>'
+ 'sdadasd' + '<select size="3" name="adassa">'
+ '<option value="1" selected="selected">1</option>'
+ '<option value="2">2*####</option>'
+ '<option value="3">3</option>'
+ '</select>'; var reg = /<select[^>]*>.*?<\/select>/g
str = str.replace(/[^0-9a-z<>=\"_\s\u4e00-\u9fa5\/]/ig,'');
alert(str.match(reg)[0] + '\r\n--------------------------\r\n' + str.match(reg)[1]);
//-->
</script>
// 晕 最后一次回答 真墨迹了...
<script type="text/javascript">
<!--
var str = '<select multiple="multiple" size="3" name="aaa">'
+ '<option value="a" selected="selected">a</option>'
+ '<option value="b">b#$%@汉字留住</option>'
+ '<option value="c">c**@@#</option>'
+ '</select>'
+ 'sdadasd' + '<select size="3" name="adassa">'
+ '<option value="1" selected="selected">1</option>'
+ '<option value="2">2</option>'
+ '<option value="3">3</option>'
+ '</select>';
(function(){
var reg = /<select[^>]*>.*?<\/select>/g, arr = [],
filter = /[^0-9a-z<>=\"_\s\u4e00-\u9fa5\/]/ig
for(var i = 0, re = str.match(reg); i < re.length; i++){
if(re[i].search(filter) == -1){
arr.push(re[i]);
}
}
alert(arr); // 符合条件的 都被存在这个arr数组里 可以通过循环arr去访问所有
})();
//-->
</script>
var html = document.body.innerHTML;
var reg = /<select\s+[\s\d\w\u4e00-\u9fa5 <\"=_\/]*>.*?<\/select>/ig;
var t = html.match(reg);
alert(t[0]);
alert(t[1]);