在JavaScript preg_match?

是否有可能在JavaScript中做preg_matchPHP呢?

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

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

分成两个分离的variables:

 var productId = 5; var shopId = 68; 

编辑:我也使用MooTools如果它会帮助。

JavaScript有一个RegExp对象,它可以做你想做的事情。 String对象有一个match()函数可以帮助你。

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

匹配[1]和匹配[2]将包含你正在寻找的数字。

 var thisRegex = new RegExp('\[(\d+)\]\[(\d+)\]'); if(!thisRegex.test(text)){ alert('fail'); } 

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

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

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

这应该工作:

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