JavaScript如何提取字符串中两个斜杠之间的纯数字
你可以通过带零宽断言的正则匹配被斜杠包裹的纯数字,不会误匹配版本号里的数字:
方案1:零宽断言(直接拿到目标结果,无需额外处理分组)
正则写法:/(?<=\/)\d+(?=\/)/
规则说明:
(?<=\/):反向肯定预查,限定匹配内容的前一个字符必须是斜杠/\d+:匹配1个及以上的连续数字(?=\/):正向肯定预查,限定匹配内容的后一个字符必须是斜杠/
方案2:捕获组写法(兼容不支持零宽断言的旧运行环境)
正则写法:/\/(\d+)\//
匹配后取第一个捕获组的内容即可得到目标数值。
效果验证示例(JavaScript环境)
const testCases = [ 'ver1.1/hello/12345/bar', 'world/098767123/foo', 'ver1.2344/foo/78687115/' ] // 零宽断言方案测试 testCases.forEach(item => { const result = item.match(/(?<=\/)\d+(?=\/)/) console.log(result[0]) }) // 输出:12345、098767123、78687115
如果需要全局匹配同个字符串中多个符合要求的数字串,在正则末尾加g修饰符即可。
内容的提问来源于stack exchange,提问作者jayko03
相关产品推荐
相关产品推荐

