0

我有以下代码:

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 的正确方法是什么?

请帮忙,提前谢谢

4

3 回答 3

3

代码很好。问题仅在alert.

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

因此,您应该查看数组内部:

alert(found[1]);

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

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

还有一个建议会让你的问题从一开始就很明显:使用console.log()而不是alert()调试。

于 2013-06-17T12:47:39.370 回答
0

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

于 2013-06-17T12:48:49.217 回答
0

没有正则表达式:

var tickettext = "This is ticketid: 1111 here are some more text",
    ticketid = tickettext.split(': ')[1].split(' ')[0];
于 2013-06-17T12:49:05.330 回答