Javascript 如何匹配此模式

Javascript 如何匹配此模式,javascript,regex,Javascript,Regex,我在大量的HTML中有这样的模式: <td>SIP/159@PBX</td> 结果呢。此模式将始终相同,唯一的区别是“/”和“@”之间的数字 我不知道如何在JS正则表达式中实现这一点。有什么想法吗?假设字符串存储在名为html html.match(/SIP\/([0-9]*)\@PBX/g)您可以使用的正则表达式如下所示: /SIP\/(\d+)@PBX/ 这发现: text SIP followed by a / (which is escaped so it i

我在大量的HTML中有这样的模式:

<td>SIP/159@PBX</td>
结果呢。此模式将始终相同,唯一的区别是“/”和“@”之间的数字


我不知道如何在JS正则表达式中实现这一点。有什么想法吗?

假设字符串存储在名为
html


html.match(/SIP\/([0-9]*)\@PBX/g)
您可以使用的正则表达式如下所示:

/SIP\/(\d+)@PBX/
这发现:

text SIP
followed by a / (which is escaped so it isn't interpreted as the end of the regex)
followed by one or more digits (captured in a group delineated with parens)
followed by the text @PBX
然后,如果有匹配的话,你就把第一组匹配的人拉出来

而且,如果除了页面中的
之外,您没有其他事情要做,那么您可以使用此通用代码查看页面中的所有
元素。理想情况下,您可以使用页面的结构来更清楚地定位适当的
单元格

var tds = document.getElementsByTagName("td");
var regex = /SIP\/(\d+)@PBX/;
for (var i = 0; i < tds.length; i++) {
    var matches = tds[i].innerHTML.match(regex);
    if (matches) {
        var number = parseInt(matches[1], 10);
        // process the number here
    }
}

试试这个:
“SIP/159@PBX“.match(/[^\/]+\/([^@]+)@[\s\s]*/)[1]

您可以使用以下正则表达式分析字符串:

var result = "<td>SIP/159@PBX</td>".match("\<td\>SIP\/([0-9]+)\@PBX\<\/td\>");

诀窍是将要在括号中隔离的字符串部分包围起来。然后,match函数的结果是一个数组,其中第一个元素是正则表达式匹配的整个字符串,然后是括号中每个组的一个新元素。

您尝试过什么吗?解释正则表达式如何在JS中工作。对于这个表达式,没有什么特定的JS。“SIP”和“@ PBX”是一致的吗?我们希望在这里改变什么?是的,我有,而且我经常做简单的正则表达式模式,我只是不擅长华丽的匹配,我正在努力学习更多。@James,是的,如上所述:“这个模式永远是一样的”,然后请发布您的尝试!
var matches, number;
var regex = /SIP\/(\d+)@PBX/g;
while (matches = regex.exec(htmlString)) {
    number = parseInt(matches[1], 10);
    // process the number here
}
var result = "<td>SIP/159@PBX</td>".match("\<td\>SIP\/([0-9]+)\@PBX\<\/td\>");
alert(result[1]);