开发者

JavaScript match substring after RegExp

I ha开发者_如何学运维ve a string that look something like

something30-mr200

I would like to get everything after the mr (basically the # followed by mr) *always there is going to be the -mr

Any help will be appreciate it.


You can use a regexp like the one Bart gave you, but I suggest using match rather than replace, since in case a match is not found, the result is the entire string when using replace, while null when using match, which seems more logical. (as a general though).

Something like this would do the trick:

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];

or

var result = "something30-mr200".match(/mr(.*)/)[1];


Why not simply:

-mr(\d+)

Then getting the contents of the capture group?


What about:

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"


This may work for you:

// 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;


What about finding the position of -mr, then get the substring from there + 3?

It's not regex, but seems to work given your description?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜