坚持让这个工作,因为标准的后视似乎并不支持它
所以我的字符串是:1~92 entries of 499 entries
我想提取92
我已尝试过/\d(?!~)/
,但只有9
,如果我使用global
标志,它最终会给我499。
有什么想法吗?
答案 0 :(得分:2)
在PHP中,负面的lookbehind可以使用(?<=~)(?:[0-9]+)
但在javascript中,这样做会更容易:
var str = "1~92 entries of 499 entries";
var afterTilde = str.substr(str.indexOf("~")+1,2);
或使用正则表达式:
var regex = /(~)([0-9]{2})/g;
并捕获group 2
。
var regex = /(~)([0-9]{2})/;
var str = "1~92 entries of 499 entries";
alert(str.match(regex)[2])
&#13;
答案 1 :(得分:1)
我认为你不一定需要一个外观。根据您的示例,正则表达式[0-9]+\~([0-9]+)
将正确捕获组1上的92
。
答案 2 :(得分:0)
使用波形符~
为您的优势,并在其后面捕获数字:
/\d~(\d*)/
工作示例:
var string = '1~92 entries of 499 entries';
let number = string.match(/\d~(\d*)/)[1];
console.log(number);
&#13;