2011-04-01 57 views
115

我想用str_replace或者其他類似的替代方法替換JavaScript中的一些文本。如何在JavaScript中執行str_replace,替換JavaScript中的文本?

var text = "this is some sample text that i want to replace"; 
var new_text = replace_in_javascript("want", "dont want", text); 
document.write("new_text"); 

應該給

this is some sample text that i dont want to replace 
+0

奇怪沒人注意到,PHP的'str_replace'也接受相同的長度,其中,所述第一陣列中的每個串置換爲相同的索引在所述第二陣列中的字符串的兩個陣列。請參閱http://stackoverflow.com/a/5069776/296430,瞭解迄今爲止我發現的唯一正確功能,該功能模仿JavaScript中的確切行爲。 – 2013-09-02 00:08:42

+0

@JulesColle經常失敗的答案 - 看看爲什麼/當它失敗和更好的解決方案在這裏:http://stackoverflow.com/a/37949642/445295 – 2016-06-21 16:24:32

回答

181

您將使用replace方法:

text = text.replace('old', 'new'); 

第一個參數是你在找什麼,很明顯。它也可以接受正則表達式。

只記得它不是更改原始字符串。它只返回新的值。

+3

非常感謝'它只返回,並沒有改變'!那是我長時間扯掉我的頭髮,直到我看到您的評論... – 2011-11-26 04:25:59

+60

string.replace('old','new')將只替換字符串中'old'的第一個實例。像realmag777的答案中使用'g'標誌的正則表達式將替換字符串的所有實例。 text = text.replace(/ old/g,'new')會替換'old'的所有實例 – Jazzerus 2012-05-31 14:44:02

+0

不區分大小寫? – 2012-06-04 11:17:06

4
var new_text = text.replace("want", "dont want"); 
11

你應該寫這樣的事情:

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); 
document.write(new_text); 
4

在JavaScript中,你可以調用String對象,例如在replace方法"this is some sample text that i want to replace".replace("want", "dont want"),它將返回替換的字符串。

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); // new_text now stores the replaced string, leaving the original untouched 
4

hm ..你檢查過replace()嗎?

您的代碼看起來像這樣

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); 
document.write(new_text); 
68

更簡單地說:

city_name=city_name.replace(/ /gi,'_'); 

替換所有空間用 '_'!

+7

這是「str_replace」(全局)更準確的翻譯。選擇的答案只會取代第一個實例。 – rICh 2012-05-15 21:53:45

+0

不要忘記轉義字符,特別是如果你要替換hex轉義:\ x27例如是'.replace(/ \\ x3B/g,';')' – dmayo 2016-10-14 18:44:40

10

該函數替換只有一個發生..如果您需要更換 多次出現,你應該試試這個功能: http://phpjs.org/functions/str_replace:527

不一定。 看到漢斯合成聚合物膜答案:

city_name = city_name.replace(/ /gi,'_'); 
8

別人是給你只能更換一個發生,同時使用正則表達式的代碼替換所有這些(如@sorgit說)。要以「不希望」,我們該代碼替換所有的「希望」:

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace(/want/g, "dont want"); 
document.write(new_text); 

變量「新文本」將導致被「這是我不希望替換一些示例文本」。

爲了得到一個快速指導,正則表達式,去這裏:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
要了解更多有關str.replace(),去這裏:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace
祝你好運!

8

所有這些方法都不會修改原始值,並返回新的字符串。

var city_name = 'Some text with spaces'; 

替換1空間與_

city_name.replace(' ', '_'); // Returns: Some_text with spaces 

替換所有空格與_使用正則表達式。如果你需要使用正則表達式,那麼我建議用https://regex101.com/

city_name.replace(/ /gi,'_'); // Returns: Some_text_with_spaces 

測試它取代所有空格與_ 沒有正則表達式。功能方式。

city_name.split(' ').join('_'); // Returns: Some_text_with_spaces 
相關問題