2013-06-18 48 views
1

假設我有三種HTML的未來它們中的:如何用正則表達式在Javascript中替換「值」?

<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元素。所以,我必須像這樣使用它。

+8

爲什麼使用正則表達式,當你可以使用DOM來更容易和更可靠地做到這一點? –

+5

爲什麼,哦,爲什麼?你已經有了HTML - 只需使用DOM來操作它! 'document.getElementById(「myID」)。value =「」' –

+1

@Aleks:'getElementById'只在元素是文檔的一部分時才起作用。如果OP以HTML字符串的形式獲取數據,則不起作用。然而,還有其他同樣簡單的方法。 –

回答

5

將HTML解析爲DOM元素並對其進行處理。然後,你可以將其轉換回任何你想用它做HTML或:

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

html = container.innerHTML; 

注:其他人還提到要使用element.value = '';。只要您不想將元​​素序列化回HTML,就可以工作。如果你這樣做,它仍然具有原始值value的值。

1

請使用簡單的DOM

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

你也可以參考以前的值來檢查。

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

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