2012-06-06 33 views
2

我有一個這樣的字符串:jQuery的,給定一個字符串,其座標更換

我是一個字符串不算長,但既不如此短暫

讓我們所說的「不'裏面的字符串:它開始於位置號碼13和它在位置NUMER 16.

有與jquery的方式與該替換位置13和位置16之間的字結束時:

<b>not</b> 

我只知道我想替換的字符串的位置,而不是它的內容。

+0

試試看看這個 [在特定索引更換] [1] [1]:http://stackoverflow.com/questions/1431094/how-do-i-replace-a-character-at-a -taricular-index-in-javascript –

+0

這不應該需要任何jQuery。幾個普通的JavaScript字符串函數,你很好。不過我知道你的意思 - 我總是先看jQuery,但是有時候普通的JavaScript會毫不費力地做到這一點。 –

回答

4

你可以使用好的老式JavaScript來做到這一點,但你可以使用jQuery進行DOM操作(儘管你不需要)。

http://jsfiddle.net/hQUhX/

內容:

function replacePiece(str, start, end) { 
    var component = str.substr(start, end - start); 
    var newstr = str.substr(0,13) + "<b>" + component + "</b>" 
     + str.substr(end); 
    return newstr; 
} 

​$("#Str").html(replacePiece($("#Str").text(), 13, 16)); 
+0

如果你甚至不知道開始的位置,但知道這個詞,你可以使用'indexOf'方法來獲取那個單詞的索引。就像[這個JSFiddle](http://jsfiddle.net/hQUhX/ 28 /) – sohaiby

1

這個答案是更換時,你只知道起始位置

我最終什麼事做的是僅基於瞭解的起始位置,而不是單詞的末尾位置答疑。

這樣做的是從已知的起始位置抓取字符串,用空格分隔它,然後用<b>將第一個字包起來,然後在字符串和輸出之間添加回去。

的jsfiddle例 http://jsfiddle.net/Jc829/4/

對不起,不付出更多的關注周圍的第一次。

此外,你並不真的需要這個jQuery。

+0

我不是問這個 –

+0

你的小提琴在Chrome中產生字符串'not'。 –

+0

對不起,我忘了添加包裝部分。現在處理它。我道歉。 –

0

雖然我已經接受了爆丸回答我認爲這是做這個(感謝馬修財富的鏈接)

String.prototype.replacePiece = function(replace_with, start, end) { 
    return this.substring(0, start) + replace_with + this.substring(end, this.length) 
} 

var str = "Helloiworld"; 

var replace_with = "<b>i</b>"; 

alert(str.replacePiece(replace_with, 5, 6));​​ 
更精純的方式

http://jsfiddle.net/paglia_s/QTMJG/

相關問題