js正则表达式截取字符串数组

varstr='ssssssw11112131sssssw22222asssssssssw33333sssssssss';varp=/w\d*/;vars="";s=st... var str = 'ssssss w11112131 sssss w22222 asssssssss w33333 sssssssss';

var p = /w\d*/;
var s ="";

s = str.match(p);
alert(s+""+"==="+s[0]+"==="+s[1]+"==="+s[2]+"===");
输出结果 : w11112131===w11112131===undefined===undefined===
我想要的结果 : w11112131===w22222===w33333===
var p = /w\d*/g;
以解决
展开
 我来答
虎爷可乐
推荐于2016-04-19 · TA获得超过253个赞
知道小有建树答主
回答量:238
采纳率:66%
帮助的人:142万
展开全部

错了好几个地方啊,第一:正则不是全局的,第二:返回的数组中,第一组(下标为 0 的)为整个正则匹配的结果,第三:js 的正则在匹配成功后就返回,后面的要再次调用!

var str = 'ssssss w11112131 sssss  w22222 asssssssss w33333 sssssssss';

var p = /w\d*/g;
var s = [], m;

while(m = p.exec(str)){
s.push(m[0])
}
alert("===" + s[0] + "===" + s[1] + "===" + s[2] + "===");
莫路草根
2015-04-07 · TA获得超过4102个赞
知道大有可为答主
回答量:4184
采纳率:85%
帮助的人:1035万
展开全部
我也想到了,加个g表示全文搜索,不加只搜索一次就返回了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式