我有一个看起来像的字符串
something30-mr200
我想在mr
(基本上是#后面跟着先生)之后得到所有东西*总是会有-mr
任何帮助将不胜感激。
我有一个看起来像的字符串
something30-mr200
我想在mr
(基本上是#后面跟着先生)之后得到所有东西*总是会有-mr
任何帮助将不胜感激。
您可以使用 Bart 给您的正则表达式,但我建议使用 match 而不是 replace,因为如果找不到匹配,则使用 replace 时结果是整个字符串,而使用 match 时为 null,这似乎更合乎逻辑. (不过一般来说)。
像这样的东西可以解决问题:
function getNumber(string) {
var matches = string.match(/-mr([0-9]+)/);
return matches[1];
}
console.log(getNumber("something30-mr200"));
var result = "something30-mr200".split("mr")[1];
或者
var result = "something30-mr200".match(/mr(.*)/)[1];
为什么不简单:
-mr(\d+)
然后获取捕获组的内容?
关于什么:
function getNumber(input) { // rename with a meaningful name
var match = input.match(/^.*-mr(\d+)$/);
if (match) { // check if the input string matched the pattern
return match[1]; // get the capturing group
}
}
getNumber("something30-mr200"); // "200"
这可能对您有用:
// Perform the reg exp test
new RegExp(".*-mr(\d+)").test("something30-mr200");
// result will equal the value of the first subexpression
var result = RegExp.$1;
找到-mr的位置,然后从那里得到子字符串+ 3呢?
这不是正则表达式,但根据您的描述似乎可以工作?