【发布时间】:2019-07-08 20:00:05
【问题描述】:
我正在尝试从一个字符串中检索一个 9 数字长的值。
字符串永远不会有相同的内容,但总会有一组长度为 9 个字符的数字,我试图将它们放入变量中。
https://jsbin.com/gabuhilexu/edit?js,console
我已经尝试了一些正则表达式示例
var first = "https://www.wrike.com/open.htm?id=119464511";
var second = "119464511: Hello world";
var third = "Hello world: 119464511 - Testing";
var broken = first.split('https://www.wrike.com/open.htm?id=');
var reg = /([^0-9])(?:11(1\d)1(\d{4}))([^0-9])/g;
console.log(first.split(reg));
console.log(reg.test(second));
有两个示例说明当前如何传递字符串,我正在尝试将 119464511 值放入变量中。
【问题讨论】:
-
如果它只是一个九位数字,你不能匹配
/\d{9}/吗? -
你可以使用:
/\b\d{9}\b/ -
或匹配1的
\b11\d{5}11\b -
数字可能并不总是在开头或结尾,也可能永远不会是 1。
-
你是什么意思他们可能永远不会是?当您说您正在尝试获取包含 4 个的
119464511时,这会让人感到困惑。
标签: javascript regex typescript