如何使用正则表达式在javascript中的另一个单词之后提取单词?

时间:2013-06-17 12:46:23

标签: javascript regex

我有以下代码:

var tickettext = "This is ticketid: 1111 here are some more text";
re = /ticketid: (\d*)/
found = tickettext.match(re);
alert(found);

我需要的是号码1111,但是此消息弹出“ticketid:1111,1111”

提取1111的正确方法是什么?

请帮忙, 提前谢谢

3 个答案:

答案 0 :(得分:3)

代码很好。问题仅出在alert

  

如果匹配成功,[match]方法将返回一个数组并更新正则表达式对象的属性。返回的数组将匹配的文本作为第一个项目,然后匹配包含所捕获文本的每个捕获括号的一个项目。

因此,您应该查看数组:

alert(found[1]);

但是,如果没有匹配,则会失败,因为在这种情况下match会返回null。所以我们也需要一个默认值:

alert((found || [])[1]);

还有一个建议可以让您的问题从一开始就立即明显:使用console.log()代替alert()进行调试。

答案 1 :(得分:0)

[M]atch返回一个数组。你想要found[1]

答案 2 :(得分:0)

没有正则表达方式:

var tickettext = "This is ticketid: 1111 here are some more text",
    ticketid = tickettext.split(': ')[1].split(' ')[0];