4

この正規表現を使用します

str = "asd34rgr888gfd98";
var p = str.match(/\d{2}/);
alert(p[0]);

しかし、変数を数量詞として使用する方法、つまりこれを記述する方法がわかりませんでした。

 var number = 2;
 var p = str.match(/\d{number}/);

PSこのページのJavaScript正規表現パターンは変数と連結されています が、私の場合、これらの投稿の例をどのように使用するかがわかりません。

4

3 に答える 3

10

RegExp正規表現を文字列として作成し、コンストラクターに渡す必要があります。

var regexString = '\\d{' + number + '}';
var regex = new RegExp(regexString);
var p = str.match(regex);

文字列を介して正規表現を作成する場合は、文字列と正規表現をエスケープするために、いくつかのエスケープ文字を追加する必要があることに注意してください。

于 2012-10-25T13:02:39.423 に答える
4
var number = "2"
var p = new RegExp("\\d{" + number + "}");
于 2012-10-25T13:02:19.320 に答える
4

これは機能するはずです:

var str = "asd34rgr888gfd98";
number = 3;
p = str.match(new RegExp('\\d{' + number + '}'));

alert(p[0]);
于 2012-10-25T13:02:55.853 に答える