2014-03-07 81 views
0

我使用此代碼可以通過鍵入一個框來更改圖像上的文本覆蓋。JavaScript替換圖像URL與文本框

<input type="text" id="inp"><br> 
<img id="image" src="image.php?name=swag"> 
<script type="text/javascript"> 
window.onload = function() 
{ 
    document.getElementById('inp').onkeyup = keyUp; 
} 

function keyUp() 
{ 
    var img = document.getElementById('image'); 
    img.src = img.src.replace(/name=[^&]+/ , 'name='+ this.value); 
} 
</script> 

它爲改變?名稱=的image.php的,但是每當我清除它停止工作的框,直到我刷新頁面。這使得它不起作用,因爲重點是清除文本框並重寫某些內容。

我需要修復它,所以它即使在清除盒子時也能正常工作,但我無法弄清楚。

回答

0

正則表達式是這裏的問題。將+替換爲*以快速修復。但你應該只是做img.src = 'image.php?name=' + this.value;

加號看起來至少有1個字符。所以,當你空出來,img.src在name=結束,不再有[^&]+更換

0

你可以試試這個,它的工作原理

img.src = img.src.replace(/名稱[^ & ] + /,'name ='+ this.value);

搜索文本以名稱開頭並替換爲name =,因此當您清除文本框時,常規exp會找到匹配的文本並用新值替換