关于正则表达式的小问题
<textarea name="hero">
<table>
<tr id="one">
<td>11</td>
</tr>
<tr id="two">
<td>33</td></tr>
<tr id="three">
<td>22</td>
</tr>
</table>
</textarea>
<script language="JavaScript">
var str=hero.value;
var re = /[.\n]*/gi;
var result=str.match(re);
for (i=0;i<result.length;i++) {
alert(result[i]);
}
</script>
在正则表达式中,"."表示除\n之外所有字符,那么理论上讲[.\n]就应当匹配字符,但是实际上并非如此,大家试试上面的例子,这是Why?如果改成(.|\n)*结果会好一点,但是也会出现两次匹配,而不是一次讲整个字符串匹配,这又是Why?
问题点数:30、回复次数:5Top
1 楼quanke1981(笨猪先跑)回复于 2005-12-30 09:35:48 得分 0
写掉一个词,“那么理论上讲[.\n]就应当匹配字符”应当是“那么理论上讲[.\n]就应当匹配所有字符”Top
2 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2005-12-30 10:07:02 得分 0
你要整个字符串还匹配什么啊,直接用不就可以了。Top
3 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2005-12-30 10:08:10 得分 0
你所说的匹配整个字符串
/^(.*?)$/Top
4 楼quanke1981(笨猪先跑)回复于 2005-12-30 13:09:42 得分 0
你给的表达式我试了一下,没有结果。。。Top
5 楼stefli()回复于 2005-12-30 13:31:12 得分 30
不明白想干什么》
你用
(.|\n)+试试Top




