javascript 正则表达式的问题

比如说正则表达式里面有两个子匹配怎么能让输出第一个呢比如说一个字符串"1234asdf"和正则表达式/(\d+)(\D+)/怎么能知输出"1234"呢... 比如说正则表达式里面有两个子匹配 怎么能让输出第一个呢 比如说一个字符串"1234asdf" 和正则表达式/(\d+)(\D+)/ 怎么能知输出"1234"呢 展开
 我来答
zhfto
2010-03-02 · TA获得超过563个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:214万
展开全部
楼上的方法可行,不过还有一些其他的方法 ..

在正则表达式裏,可以通过$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>
simlinkwx
2010-03-01 · TA获得超过1331个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:571万
展开全部
楼主你这个正则括号跟本就没意义啊,加和不加都一样的,没看懂你想说什么,如果你只想输出“1234”,正则这样就行了/\d+|\D+/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
计名pS
2010-03-02 · TA获得超过3649个赞
知道大有可为答主
回答量:4189
采纳率:0%
帮助的人:2199万
展开全部
--只输出"1234"

/\d+/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呆呆鱼1012
2010-03-01
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
/(\d+)(\D+)/.exec("1234asdf")[1];

或者

"1234asdf".match(/(\d+)(\D+)/)[1];

是这样么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式