2013-04-03 72 views
0

我需要在字符串內下劃線後替換所有數字。下劃線後替換數字

我認爲我可以使用正則表達式,但我不知道如何使用正則表達式語法

見我的字符串的一個例子:

milton_0 
milton_1 
+3

什麼代替呢? – BenM

+1

https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Regular_Expressions – Quantastical

+0

替換爲我將生成的其他號碼! – mcamara

回答

1

我不知道你想怎麼特定或寬範圍是,但你可以試試這個:

var starter = "milton_1"; 
var specialVal = "asdf"; 

var re = /^(milton_)(\d+)$/; 

var replaced = starter.replace(re, function (match, p1) { 
    return p1 + specialVal; 
}); 

console.log(replaced); 

http://jsfiddle.net/ne4cD/

這將匹配的字符串開始以「milton_」和以數字結尾。它將「_」後的任何數字替換爲specialVal值。

簡單地增加這個數字的一​​個例子是:

var starter = "milton_1"; 
var re = /^(milton_)(\d+)$/; 

var replaced = starter.replace(re, function (match, p1, p2) { 
    return p1 + (+p2 + 1); 
}); 

console.log(replaced); 

http://jsfiddle.net/ne4cD/2/

UPDATE:

如果 「米爾頓」 的一部分也不是一成不變的,那麼你真的只以後面的數字爲目標的「_」。因此,像這樣:

var starter = "asdfkjlasdfjksadf_1"; 
var specialVal = "asdf"; 

var re = /(_)(\d+)/g; 

var replaced = starter.replace(re, function (match, p1) { 
    return p1 + specialVal; 
}); 

console.log(replaced); 

http://jsfiddle.net/ne4cD/3/

,也許更好一點看:http://jsfiddle.net/ne4cD/4/

+0

如果我不知道什麼是下劃線之前的文字? – mcamara

+0

@tomcamara剛編輯我的答案。讓我知道如果這有幫助,或者如果你需要更多的信息 – Ian

+0

是的,這是幫助,謝謝你@lan – mcamara

4

如果是這樣的標準格式,可以使用split()

var str = 'milton_1'; 
alert(str.split('_')[1]); 
2

你不需要這個正則表達式。以下代碼已足夠

var str = "milton_0"; 
str = str.substring(0,str.indexOf("_")); 
-1

首先,您需要將它們作爲輕鬆處理的列表。

var listOfStrings = yourStringObject('whateverYourCharacterUnderEachWord').ToList<string>(); 

之後,你需要擺脫數列表中的每個字符串,並添加你想要什麼。

foreach(string word in listOfStrings){ 
word = word.Substring(0,word.IndexOf('_')+1); 
word = word + "characterThatYouWantToAddHere" 
}