簡體   English   中英

如何替換具有無限字符子字符串的字符串?

[英]How to Replace String having Substring of Unlimited Characters?

我正在嘗試替換字符串

var url = "www.fnord.com/foo/bar/btn_close_white.gif";

簡單的逐字逐詞替換效果很好:

var newUrl = url.replace(/btn_close_white.gif/g,"btn_close_black.gif");

但是由於我不知道當前設置了什么顏色,因此我需要使用正則表達式來忽略顏色部分並替換整個段。 因此,從理論上講, btn_close_pink.gifbtn_close_someOtherFancyColor.gif都將替換為btn_close_black.gif

我試過了,但是失敗了,我不知道為什么:

var newUrl = url.replace(/btn_close_*.gif/g,"btn_close_black.gif"); // this fails

我究竟做錯了什么?

嘗試這個:

var url = "www.fnord.com/foo/bar/btn_close_white.gif";
var newUrl = url.replace(/btn_close_[\w\d]*\.gif/g,"btn_close_black.gif");

正則表達式[\\w\\d]*表示任意數量的字母或數字。 如果您允許url中的任何字符,請執行以下操作:

var newUrl = url.replace(/btn_close_.*\.gif/g,"btn_close_black.gif");

編輯:當您寫"/btn_close_*\\.gif/"表達式時,這意味着您的字符串應包含“ btn_close”字符串+任意數量的“ _”字符+“ .gif”字符串。

當您寫"/btn_close_.*\\.gif/"表達式時,這意味着您的字符串應包含“ btn_close”字符串+任何數量的任何字符+“ .gif”字符串。

當您可以簡單地連接字符串時,是否有使用繁瑣的替換操作的原因? 如果沒有,我建議這樣做:

var url = "www.fnord.com/foo/bar/btn_close_white.gif";
var newUrl = url.substring(url.lastIndexOf('/')+1,-1)+"btn_close_black.gif"

它所做的只是找到最后一個斜杠並刪除所有后續字符,因此您可以輕松地附加文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM