入力は次のようになります。
path = "html body div div:eq(2) p:eq(4)"
括弧内のすべての数字を1つ減らして、次のような文字列を取得したい
path = "html body div div:eq(1) p:eq(3)"
私は何をすべきか?前もって感謝します。
入力は次のようになります。
path = "html body div div:eq(2) p:eq(4)"
括弧内のすべての数字を1つ減らして、次のような文字列を取得したい
path = "html body div div:eq(1) p:eq(3)"
私は何をすべきか?前もって感謝します。
Prinzhornの答えはより簡潔ですが、「より厳密な」代替案を提供したいと思います(どこでもなく、括弧内の数字のみを考慮します)。
path = path.replace(/\((\d+)\)/g, function(match, group1) {
return "(" + (parseInt(group1,10) - 1) + ")";
});
注: の 2 番目の引数として関数を指定するとreplace
、完全な一致と各キャプチャ グループが引数として返され、元の一致があった場所に返されたものが挿入されます。(
ここでは、リテラルand を照合し、)
その間の [キャプチャされた] 数値を解析してデクリメントしています。
str.replace(/\d+/g, function(a) {return a - 1;});