从后向前匹配到字符串中第一个2个连续的数字.比如: '20S08060a9'想匹配到'60'
追加提问:
匹配到60后需要获取到60当前在文字中的索引.
翻转字符串,再将结果翻转回去
//定义字符串翻转方法
const reverseStr = (str)=>{
return str.split('').reverse().join('');
}
reverseStr("20S08060a9").match(/\d{2}/g).map(e=>reverseStr(e))
要取索引,Fractal的方案思路套用一下也可以得到。
'20S08060a9'.match(/^(.*)(\d{2}).*$/)
//得到 [ "20S08060a9", "20S080", "60" ] 其中"20S080"的长度不就是你要的索引的。
var str = "20S08060a9";
var num = str.match(/\d{2}(?!\d)/g).pop();
var index = str.lastIndexOf(num);
console.log(num, index);
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
/\d(?!.*\d{2})\d/