如何用正则表达式替换Javascript中的“值”?

时间:2013-06-18 09:25:07

标签: javascript regex

假设我有三种HTML:

<input name="myName" id="myID" role="textbox" style="width: 98%;" type="text" value="SDFSF"/>

OR

<input name="myName" id="myID" role="textbox" style="width: 98%;" type="text" value='SDFSF'/>

OR

<input name="myName" id="myID" role="textbox" style="width: 98%;" type="text"/>

我不知道他们中的哪一个会来。我试图像这样编辑它们:

<input name="myName" id="myID" role="textbox" style="width: 98%;" type="text" value=''/>

我正在使用这个东西:

html = html.replace(/value="(?:[^\\"]+|\\.)*"/,"value=''");

这可以将value="Something"替换为value=''。如何将其扩展到其他两个? Javascript中有OR的选项吗?

修改

我没有DOM元素。所以,我必须像这样使用它。

2 个答案:

答案 0 :(得分:5)

将HTML解析为DOM元素并对其进行操作。然后你可以将它转换回HTML或任何你想用它做的事情:

var container = document.createElement('div');
container.innerHTML = html;
container.firstChild.setAttribute('value', '');

html = container.innerHTML;

注意:提到的其他人使用element.value = '';。只要您不希望将元素序列化回HTML,这就可以工作。如果您这样做,它仍将具有原始的value值。

答案 1 :(得分:1)

请简单使用DOM

document.getElementById("myId").value = "";

您也可以参考之前的值进行检查。

var el = document.getElementById("myId")
var myValue = el.value;

if (myValue === notSoGood) {
    el.value = "BetterValue";
}