preg_match в JavaScript? - PullRequest
       37

preg_match в JavaScript?

66 голосов
/ 20 июля 2010

Возможно ли в JavaScript сделать что-то вроде preg_match в PHP?

Я бы хотел получить два числа из строки:

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

в две разделенные переменные:

var productId = 5;
var shopId    = 68;

Редактировать: я также использую MooTools, если это поможет.

Ответы [ 5 ]

102 голосов
/ 20 июля 2010

JavaScript имеет объект RegExp, который делает то, что вы хотите.Объект String имеет функцию match(), которая поможет вам.

var matches = text.match(/price\[(\d+)\]\[(\d+)\]/);
29 голосов
/ 20 июля 2010
var text = 'price[5][68]';
var regex = /price\[(\d+)\]\[(\d+)\]/gi;
match = regex.exec(text);

match [1] и match [2] будут содержать числа, которые вы ищете.

20 голосов
/ 08 января 2013
var thisRegex = new RegExp('\[(\d+)\]\[(\d+)\]');

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

Я обнаружил, что test действует как preg_match, поскольку он обеспечивает логическое возвращение. Однако вы должны объявить переменную RegExp.

СОВЕТ: RegExp добавляет свои собственные / в начале и в конце, поэтому не пропускайте их.

5 голосов
/ 20 июля 2010

Это должно работать:

var matches = text.match(/\[(\d+)\][(\d+)\]/);
var productId = matches[1];
var shopId = matches[2];
4 голосов
/ 20 июля 2010
var myregexp = /\[(\d+)\]\[(\d+)\]/;
var match = myregexp.exec(text);
if (match != null) {
    var productId = match[1];
    var shopId = match[2];
} else {
    // no match
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...