2017-07-25 127 views
0

我需要用'5h'替換'5小時'等字符串。但是我只能夠達到'5小時'。如何刪除之間的空間?當我將我的函數中的「小時」替換爲空格的「小時」時,它將不進行任何替換並返回「5小時」。如何在字符串替換中包含空格?

$('div.block_name span').text(function(){ 
    return $(this).text().replace("hours","h"); 
}); 
+0

顯示你的HTML。 –

回答

3

您可以使用正則表達式,像這樣:

// "\s?" means that find a space only if it exists 
 
console.log("5 hours".replace(/\s?hours/, 'h')); // 5h 
 
console.log("5hours".replace(/\s?hours/, 'h')); // 5h

+2

該解決方案還適用於不間斷空格(' '),它通過jQuery的'text()'方法轉換爲unicode字符160。我相信這是OP的問題所在。 – DarthJDG

+0

是啊!感謝您的正則表達式方法。我早些時候嘗試過使用它,但是在它周圍使用了引號。順便說一句,jquery只是讓世界看起來更容易。 (今天剛開始使用它!) –

+0

@VaishMK我會建議不要使用jQuery。你可以使用DOM節點'.textContent' – Neal

2

試試這個:

$('div.block_name span').text(function(){ 
        return $(this).text().replace(" hours","h"); 
       }); 

這將替換前導空格以及字符串hours以字符串h

工作的jsfiddle例子:https://jsfiddle.net/4bqz79vh/

+0

我早些時候嘗試過。但它不起作用。 –

+0

剛剛在這個小提琴上測試過,它按預期工作:https://jsfiddle.net/4bqz79vh/ – ajc2000

+2

正則表達式解決方案應該工作。如果在HTML標記中有一個非中斷空格(' '),它將被轉換爲Unicode字符160而不是標準空格。 – DarthJDG

相關問題