我有一个类似
的字符串something30-mr200
我想在mr
之后得到所有内容(基本上是#后跟先生)*总是会有-mr
任何帮助都会受到赞赏。
答案 0 :(得分:18)
你可以使用像Bart给你的正则表达式,但我建议使用匹配而不是替换,因为如果找不到匹配,结果是使用replace时的整个字符串,而使用match时为null,似乎更符合逻辑。 (作为一般而言)。
这样的事情可以解决问题:
functiong getNumber(string) {
var matches = string.match(/-mr([0-9]+)/);
return matches[1];
}
getNumber("something30-mr200");
答案 1 :(得分:4)
var result = "something30-mr200".split("mr")[1];
或
var result = "something30-mr200".match(/mr(.*)/)[1];
答案 2 :(得分:4)
为什么不简单:
-mr(\d+)
然后获取捕获组的内容?
答案 3 :(得分:2)
怎么样:
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"
答案 4 :(得分:1)
这可能对您有用:
// 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;
答案 5 :(得分:0)
如何找到-mr的位置,然后从那里获取子串+ 3?
这不是正则表达式,但根据您的描述似乎有效吗?