是否可以JavaScript
像preg_match
in那样做PHP
?
我希望能够从字符串中获得两个数字:
var text = 'price[5][68]';
分为两个独立的变量:
var productId = 5;
var shopId = 68;
编辑:我也使用MooTools
它是否有帮助。
Answers:
var thisRegex = new RegExp('\[(\d+)\]\[(\d+)\]');
if(!thisRegex.test(text)){
alert('fail');
}
我发现测试可以执行更多的preg_match,因为它提供了布尔返回值。但是,您必须声明一个RegExp变量。
提示:RegExp在开始和结束时添加了它自己的/,所以不要通过它们。
/\[(\d+)\]\[(\d+)\]/.test(text)
用于在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""
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。
text.match
将返回匹配结果。如此var match = text.match(/price\[(\d+)\]\[(\d+)\]/)
,然后alert(match[1]);