正则表达式将输入标签拉出窗体
这个问题在这里已经有了答案:
正则表达式在解析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无法解析完整文档(如果我没有记错的话)。