c# - JavaScript 正则表达式问题

标签 c# javascript regex

Csharp 正则表达式模式:

Regex rg = new Regex("(?i)(?<=>)[^<]+(?=</TD>)");

JavaScript 正则表达式模式:

var pattern = (?i)(?<=>)[^<]+(?=</TD>);

var result = str.match(pattern);

Csharp 正则表达式模式有效,但 javascript 正则表达式模式无效,请帮忙?

最佳答案

假设您有一个字符串形式的 HTML 片段并且位于浏览器中,尝试使用 JavaScript 来使用它:

var str = "<TD>33,7</TD><TD>100</TD><TD>20,0</TD>";

var temp = document.createElement("tr");
temp.innerHTML = str;

var tds = temp.getElementsByTagName("td")
for (var i=0; i<tds.length; i++) {
  alert(tds[i].textContent);  // use .innerText in Internet Explorer
}

看到了吗?不需要正则表达式 - 浏览器内置了功能完善的 HTML 解析器,无需创建自己的解析器。当使用像 jQuery 这样的 JavaScript 框架时,上面的事情变得更加容易:

$("<TD>33,7</TD><TD>100</TD><TD>20,0</TD>").find("td").each( function() {
  alert( $(this).text() );
});

关于c# - JavaScript 正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819113/

相关文章:

c# - 如何在 MVC 4 中添加 View

javascript - React,当子类继承并挂载时,父类是否运行生命周期方法?

javascript - 串联电子邮件正则表达式

regex - 正则表达式模式中组模式的重复

javascript - 按钮点击计数器存数

regex - Logstash if 语句与正则表达式示例

c# - 为无效属性或属性参数抛出什么异常?

c# - datatable.merge 不添加列

c# - 格式化字符串的输出

javascript - JavaScript 版本如何与 ECMAScript 版本相关联?