次のような文字列があります
something30-mr200
(基本的に # の後に mr が続きます) の後にすべてを取得したいと思いますmr
*常に-mr
どんな助けでも感謝します。
次のような文字列があります
something30-mr200
(基本的に # の後に mr が続きます) の後にすべてを取得したいと思いますmr
*常に-mr
どんな助けでも感謝します。
Bart が提供したような正規表現を使用できますが、replace ではなく match を使用することをお勧めします。これは、一致が見つからない場合、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 を取得するのはどうですか?
それは正規表現ではありませんが、あなたの説明を考えるとうまくいくようですか?