web-dev-qa-db-ja.com

JavaScriptのpreg_match?

JavaScriptpreg_matchPHPで行うようなことを行うことは可能ですか?

文字列から2つの数値を取得できるようにしたいと思います。

var text = 'price[5][68]';

2つの分離された変数に:

var productId = 5;
var shopId    = 68;

編集:役立つ場合は、MooToolsも使用します。

67
hsz

JavaScriptには、必要な処理を行う RegExp オブジェクトがあります。 String オブジェクトには、手助けとなる match() 関数があります。

var matches = text.match(/price\[(\d+)\]\[(\d+)\]/);
103
godswearhats
var text = 'price[5][68]';
var regex = /price\[(\d+)\]\[(\d+)\]/gi;
match = regex.exec(text);

match [1]およびmatch [2]には、探している番号が含まれます。

29
kander
var thisRegex = new RegExp('\[(\d+)\]\[(\d+)\]');

if(!thisRegex.test(text)){
    alert('fail');
}

ブール値を返すため、より多くのpreg_matchを実行するテストを見つけました。ただし、RegExp変数を宣言する必要があります。

ヒント:RegExpは、開始時と終了時に独自の/を追加するため、それらを渡さないでください。

20
Tracey Turn

これは動作するはずです:

var matches = text.match(/\[(\d+)\][(\d+)\]/);
var productId = matches[1];
var shopId = matches[2];
5
Dan Stocker
var myregexp = /\[(\d+)\]\[(\d+)\]/;
var match = myregexp.exec(text);
if (match != null) {
    var productId = match[1];
    var shopId = match[2];
} else {
    // no match
}
4
Tim Pietzcker