正则表达式将输入标签拉出窗体

这个问题在这里已经有了答案:

  • RegEx匹配除XHTML自包含标签之外的开放标签35个答案

  • 正则表达式在解析HTML时基本上是不好的(请参阅您能否提供一些例子,说明为什么很难用正则表达式解析XML和HTML?为什么)。 你需要的是一个HTML解析器。 请参阅您能否提供一个使用您最喜欢的解析器解析HTML的示例? 例如使用各种解析器。


    为什么你不能只使用DOM?

    var inputFields = document.getElementById('form_id').getElementsByTagName('input');
    for (var i = 0, l = inputFields.length; i < l; i++) {
        // Do something with inputFields[i] ...
    }
    

    如果你必须使用正则表达式:

    var formHTML = document.getElementById('form_id').innerHTML;
    var inputs = formHTML.match(/<input.+?/?>/g);
    

    请注意,上述正则表达式不可靠,并且在所有情况下都不起作用,因此您应该使用DOM! :)


    您可以使用document.createElement创建一些元素,然后(ab)使用它的innerHTML属性从字符串中创建一个DOM:

    var html = document.createElement("div");
    html.innerHTML = "<form><input/><input/><input/></form>";
    
    // now you can use dom methods, e.g. getElementsByTagName
    var inputs = html.getElementsByTagName("input");
    var foo = inputs[0].value; // ...
    

    您可能必须事先手动删除您的<html>标签,尽管IE无法解析完整文档(如果我没有记错的话)。

    链接地址: http://www.djcxy.com/p/76865.html

    上一篇: Regexp to pull input tags out of form

    下一篇: Regular Expression to match open and closed html tags