2012-05-01 68 views

回答

593

不需要jQuery。

var ret = "data-123".replace('data-',''); 
console.log(ret); //prints: 123 

Docs.


對於所有出現丟棄使用:

var ret = "data-123".replace(/data-/g,''); 

PS:Replace函數返回一個新字符串並保留原​​始的字符串不變,因此使用該功能在replace()調用後返回值。

+41

對不起,就這麼老的東西發表評論,但我只是想補充說,JavaScript的.replace只替換匹配文本的第一個實例。 –

+24

@ matthew_360,使用'g'正則表達式標誌:'str.replace(/ abc/g,'');' –

+0

@Mathletics我的錯誤,這個問題對我自己是主觀的(Re:IE不兼容) –

13

普通老式的JavaScript就足夠了 - jQuery是沒有必要爲這樣一個簡單的任務:

var myString = "data-123"; 
var myNewString = myString.replace("data-", ""); 

參見:.replace() docs on MDN更多的信息和使用情況。

80

這與jQuery沒有任何關係。您可以使用JavaScript replace功能如下:

var str = "data-123"; 
str = str.replace("data-", ""); 

您也可以通過一個正則表達式來此功能。在下面的例子中,它將取代除數字之外的所有東西:

str = str.replace(/[^0-9\.]+/g, ""); 
+0

感謝您的信息。我實際上需要坐下來學習正則表達式。正則表達式在PHP和JS中是一樣的嗎? –

+1

略有不同,但大部分情況相同。一旦你學習了基本的正則表達式語法,這些知識就適用於他們使用的任何地方 –

+0

如果'data-'存儲在一個變量中,該怎麼辦var x ='data-' – Okky

8

我習慣了C#(Sharp)String.Remove方法。 在Javascript中,字符串沒有刪除功能,但有substr功能。 您可以使用substr函數一次或兩次從字符串中刪除字符。 您可以進行以下函數刪除在開始索引字符字符串的結尾,就像C#方法首先重載String.Remove(INT的startIndex):

function Remove(str, startIndex) { 
    return str.substr(0, startIndex); 
} 

和/或者您也可以進行以下功能在開始的索引中刪除人物和計數,就像C#方法第二個重載String.Remove(INT的startIndex,詮釋計數):

function Remove(str, startIndex, count) { 
    return str.substr(0, startIndex) + str.substr(startIndex + count); 
} 

然後你就可以使用這兩個功能,或爲您的需求其中之一!

例子:

alert(Remove("data-123", 0, 5)); 

輸出:123

33

您可以使用"data-123".replace('data-','');,如提及,但作爲replace()只替換匹配文本的FIRST例如,如果你的字符串就像"data-123data-"然後

"data-123data-".replace('data-',''); 

只會替換第一個匹配的文本。和你的輸出就會"123data-"

DEMO

所以,如果你想文本的所有比賽中的字符串替換,你必須使用正則表達式與g標誌這樣的:

"data-123data-".replace(/data-/g,''); 

和你的輸出就會"123"

DEMO2

19

你可以用切片()它returens開始之間charcters到結束(包括端點)

string.slice(start , end); 

這裏是一些exmp展示它是如何工作的:

var mystr = ("data-123").slice(5); // jast define start point so output is "123" 
var mystr = ("data-123").slice(5,7); // define start and end so output is "12" 
var mystr=(",246").slice(1); // returens "246" 

Demo

+1

這不是一個好的答案。請添加一些說明或參考鏈接到功能,這些功能可以讓您瞭解這項工作的方式。 –

+0

我認爲從字符串中刪除前綴非常簡單.... spacialy它有用於刪除字符串的第一個字符的逗號(,) –

+0

@ m.rshojaei請將您的解釋放入您的文章中(通過編輯您的文章;寧可比評論) –

6

使用match()和​​返回一個number變量:

Number(("data-123").match(/\d+$/)); 

// strNum = 123 

下面是上面的語句做......工作中出:

  1. str.match(/\d+$/) - 返回包含以數字的任意長度的比賽在str末的數組。在這種情況下,它將返回一個包含單個字符串項目['123']的數組。
  2. ​​- 將其轉換爲數字類型。因爲從.match()返回的數組包含單個元素​​將返回該數字。
11

例如: -

var value="Data-123"; 
var removeData=value.replace("Data-",""); 
alert(removeData); 

希望這會爲你工作。

5

這是我做的小功能一直爲我工作:)

String.prototype.deleteWord = function (searchTerm) { 
    var str = this; 
    var n = str.search(searchTerm); 
    while (str.search(searchTerm) > -1) { 
     n = str.search(searchTerm); 
     str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length); 
    } 
    return str; 
} 

// Use it like this: 
var string = "text is the the cool!!"; 
string.deleteWord('the'); // Returns text is cool!! 

我知道這是不是最好的,但它一直爲我工作:)

+0

你在回答中顯示了字符串的替換函數或多或少地起作用,但實際上只是使用字符串的替換函數是更簡單和更簡單的代碼,那麼你的! –

+0

是的,我基於我的'String.prototype.replaceWith'函數的這個代碼:) –

相關問題