0

我需要替换字符串内下划线后的所有数字。

我认为我可以使用正则表达式,但我不知道如何使用正则表达式语法

查看我的字符串示例:

milton_0
milton_1
4

4 回答 4

4

如果这是标准格式,您可以使用split()

var str = 'milton_1';
alert(str.split('_')[1]);
于 2013-04-03T14:09:37.770 回答
2

你不需要正则表达式。下面的代码就够了

var str = "milton_0";
str = str.substring(0,str.indexOf("_"));
于 2013-04-03T14:10:39.957 回答
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/

更新:

如果“milton”部分不是静态的,那么您实际上只是针对带有数字的“_”。所以是这样的:

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/

于 2013-04-03T14:20:51.477 回答
-1

首先,您需要将它们作为易于处理的列表。

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

之后,您需要删除列表中每个字符串的数字并添加您想要的内容。

foreach(string word in listOfStrings){
word = word.Substring(0,word.IndexOf('_')+1);
word = word + "characterThatYouWantToAddHere"
}
于 2013-04-03T14:20:09.543 回答