JavaScript中的preg_匹配?

JavaScript中的preg_匹配?,javascript,regex,mootools,Javascript,Regex,Mootools,是否可以在JavaScript中执行类似preg\u match在PHP中执行的操作 我希望能够从字符串中获得两个数字: var text = 'price[5][68]'; 分为两个独立变量: var productId = 5; var shopId = 68; 编辑: 如果有帮助的话,我也会使用MooTools var text = 'price[5][68]'; var regex = /price\[(\d+)\]\[(\d+)\]/gi; match = regex.exe

是否可以在
JavaScript
中执行类似
preg\u match
PHP
中执行的操作

我希望能够从字符串中获得两个数字:

var text = 'price[5][68]';
分为两个独立变量:

var productId = 5;
var shopId    = 68;
编辑: 如果有帮助的话,我也会使用
MooTools

var text = 'price[5][68]';
var regex = /price\[(\d+)\]\[(\d+)\]/gi;
match = regex.exec(text);
match[1]和match[2]将包含您要查找的数字。

JavaScript有一个对象,它可以满足您的需要。该对象有一个功能可以帮助您解决问题

var matches=text.match(/price\[(\d+)\]\[(\d+)\]/);
var productId=匹配项[1];
var shopId=匹配项[2];
这应该可以:

var matches = text.match(/\[(\d+)\][(\d+)\]/);
var productId = matches[1];
var shopId = matches[2];
我发现这个测试更适合于preg_匹配,因为它提供了一个布尔返回。但是,您必须声明一个RegExp变量


提示:RegExp在开始和结束时添加它自己的/所以不要传递它们。

获取HTML内容中图像链接的示例代码。 像PHP中的preg_match_all

让HTML='';
设re=/
输出阵列

0: "<img src="htt ps://domain.com/uploads/monthly_2019_11/7/1.png.jpg""
1: "<img src="htt ps://domain.com/uploads/monthly_2019_11/7/9.png.jpg""
0:“一些谷歌搜索让我想到:

函数预匹配(regex,str){
返回(新RegExp(regex).test(str))
}
日志(preg_match(“^[a-zA-Z0-9.\-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$,“测试”))

日志(预匹配(“^[a-zA-Z0-9.\-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$”,”what@google.com)
返回匹配字符串或为false

function preg_match (regex, str) {
  if (new RegExp(regex).test(str)){
    return regex.exec(str);
  }
  return false;
}

对于其他谷歌用户;
text.match
将返回匹配的结果。因此
var match=text.match(/price\[(\d+)\]\[(\d+)\]/)
然后
警报(match[1]);
您也可以使用
/\[(\d+)\[(\d+)\]/.test(text)来缩短匹配
我同意,当我看到这个问题的标题时,我正在寻找如何重现preg_match的regex测试功能;)使用RegExp类构造函数的好处是,如果需要在模式中插入变量,它需要一个字符串!仅在转义反斜杠时对我有效,如“\[(\\d+)\]\[(\\d+)\]”
let HTML = '<div class="imageset"><table><tbody><tr><td width="50%"><img src="htt ps://domain.com/uploads/monthly_2019_11/7/1.png.jpg" class="fr-fic fr-dii"></td><td width="50%"><img src="htt ps://domain.com/uploads/monthly_2019_11/7/9.png.jpg" class="fr-fic fr-dii"></td></tr></tbody></table></div>';
let re = /<img src="(.*?)"/gi;
let result = HTML.match(re);
0: "<img src="htt ps://domain.com/uploads/monthly_2019_11/7/1.png.jpg""
1: "<img src="htt ps://domain.com/uploads/monthly_2019_11/7/9.png.jpg""
function preg_match (regex, str) {
  if (new RegExp(regex).test(str)){
    return regex.exec(str);
  }
  return false;
}