[英]questions on javascript - string.replace()
我試圖運行這行代碼,想知道為什么它不起作用。 有人對此有答案嗎?
var string = "foo bar";
string = string.replace(" ", "");
alert(string.length);
為什么不將字符串的長度改為6?
該函數僅替換您搜索的字符串的一個實例。
要替換更多內容,可以使用正則表達式進行匹配:
string = string.replace(/\s+/g, '');
這將刪除所有“空白”字符。 “ \\ s”匹配空格,“ +”表示空格字符的“一次或多次出現”,后跟“ g”表示“對字符串中的所有匹配序列執行此操作”。
由於字符串中包含多個space
,並且.replace
將替換一個空格,因此遇到了第一個空格。
可以按預期工作,只有一個空間
var string = "foo bar";
string = string.replace(" ", "");
alert(string.length);
replace,當將字符串作為第一個參數傳遞時,僅替換該字符串的第一個匹配項。 要替換所有內容,您需要一個正則表達式:
alert("foo bar".replace(/ /g, ""));
那是因為只替換了一個空格。 根據JavaScript 1.5規范, String.replace()
將正則表達式作為第一個參數,並且字符串參數的行為未定義。 瀏覽器后來決定以類似方式對待字符串-但由於無法在字符串上指定g
標志,因此只能進行一次替換。 這將做您想要的:
string = string.replace(/ /g, '');
但是,Pointy提供的版本( /\\s+/g
)可能更有效。 並且它將替換其他類型的空格(制表符,換行符)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.