JavaScript中的preg_match?

时间:2010-07-20 14:56:19

标签: javascript regex mootools

JavaScript是否可以在preg_match中执行PHP之类的操作?

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

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

分为两个独立的变量:

var productId = 5;
var shopId    = 68;

编辑: 如果有帮助,我也会使用MooTools

8 个答案:

答案 0 :(得分:101)

JavaScript有一个RegExp对象可以满足您的需求。 String对象具有match()功能,可以帮助您。

var matches = text.match(/price\[(\d+)\]\[(\d+)\]/);

答案 1 :(得分:29)

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

匹配[1]和匹配[2]将包含您要查找的数字。

答案 2 :(得分:20)

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

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

我发现test更多地执行preg_match,因为它提供了一个布尔返回。但是,您必须声明一个RegExp var。

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

答案 3 :(得分:5)

这应该有效:

var matches = text.match(/\[(\d+)\][(\d+)\]/);
var productId = matches[1];
var shopId = matches[2];

答案 4 :(得分:4)

var myregexp = /\[(\d+)\]\[(\d+)\]/;
var match = myregexp.exec(text);
if (match != null) {
    var productId = match[1];
    var shopId = match[2];
} else {
    // no match
}

答案 5 :(得分:0)

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

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""

答案 6 :(得分:0)

有些Google搜索将我带到this

function preg_match (regex, str) {
  return (new RegExp(regex).test(str))
}
console.log(preg_match("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$","test"))
console.log(preg_match("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$","what@google.com"))

有关更多信息,请参见https://locutus.io

答案 7 :(得分:0)

返回匹配的字符串或为假

new