2013-04-03 47 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" 
}