我正在尝试为此字符串生成正则表达式:
我需要的是一种只从9个数字中获取最后5个数字的方法
到目前为止我这样做了:
case.match(/\d{5}$/)
Run Code Online (Sandbox Code Playgroud)
它适用于前两种情况,但不适用于最后一种情况
你可以用
/\b\d{4}(\d{5})$/
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示.获取第1组值.
细节
\b - 字边界(以确保数字块长度为9位) - 如果字符串末尾的数字块可以包含更多,请删除 \b\d{4} - 四位数(\d{5}) - 第1组:五位数$ - 字符串结尾.JS演示:
var strs = ['test-123456789','test-1234-123456789','test-12345'];
var rx = /\b\d{4}(\d{5})$/;
for (var s of strs) {
var m = s.match(rx);
if (m) {
console.log(s, "=>", m[1]);
} else {
console.log("Fail for ", s);
}
}Run Code Online (Sandbox Code Playgroud)