我有以下代码:
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 的正确方法是什么?
请帮忙,提前谢谢
我有以下代码:
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 的正确方法是什么?
请帮忙,提前谢谢
代码很好。问题仅在alert
.
如果匹配成功,[
match
] 方法返回一个数组并更新正则表达式对象的属性。返回的数组将匹配的文本作为第一项,然后是每个匹配的包含捕获的文本的捕获括号的一项。
因此,您应该查看数组内部:
alert(found[1]);
但是,如果没有匹配,这将失败,因为在这种情况下match
返回null
。所以我们也需要一个默认值:
alert((found || [])[1]);
还有一个建议会让你的问题从一开始就很明显:使用console.log()
而不是alert()
调试。
[M]atch返回一个数组。你想要found[1]
。
没有正则表达式:
var tickettext = "This is ticketid: 1111 here are some more text",
ticketid = tickettext.split(': ')[1].split(' ')[0];