javascript 正则表达式的问题
比如说正则表达式里面有两个子匹配 怎么能让输出第一个呢 比如说一个字符串"1234asdf" 和正则表达式/(\\d+)(\\D+)/怎么能知输出"1234"呢
答案:楼上的方法可行,不过还有一些其他的方法 ..
在正则表达式裏,可以通过$1,$2...$9依次取得从左向右每个括号裏的子表达式所匹配的值.在Javascript裏,可以直接利用这些变量进行替换比如:
<script language="Javascript">
var reg = /^(\\d+)(\\D+)$/;
var str = "123abc"
alert(str.replace(reg,"$1"))
</script>
上面alert出来的值,其实就是第一个分组中的值,不过可能不是你所希望的那样. 那麼看下面的代码:
<html>
<head>
<script language="javascript">
var G=document.getElementById;
function window_load(){
var str = "1234abc";
var reg = /^(\\d+)(\\D+)$/
//执行下面任何一个正则操作,都会有分组捕获
//reg.test(str);
//str.match(reg);
//str.replace(reg,"");
reg.exec(str);
//可以用RegExp.$1或者RegExp["$1"]取得第一个分组的值
alert(RegExp.$1);
alert(RegExp.$2);
}
</script>
</head>
<body onload="window_load();">
</body>
</html>
上一个:IE6的javascript问题
下一个:javascript编程,急急急