当前位置:编程学习 > JS >>

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编程,急急急

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,