Javascript 查找字符串中的文本并替换它
我有一个包含字符串表达式的变量。此表达式具有以下模式: Property_表达式运算符值 proeprty_表达式可以如下所示: 世界 世界/名称 城市/名称 我想查找/之后的文本,如果它存在,则替换为自定义文本。我该怎么做呢?你可以试试这个Javascript 查找字符串中的文本并替换它,javascript,regex,Javascript,Regex,我有一个包含字符串表达式的变量。此表达式具有以下模式: Property_表达式运算符值 proeprty_表达式可以如下所示: 世界 世界/名称 城市/名称 我想查找/之后的文本,如果它存在,则替换为自定义文本。我该怎么做呢?你可以试试这个 var the_string = "City/Name"; var word = "New"; var result = the_string.substring(0, the_string.lastIndexOf('/') + 1); alert(res
var the_string = "City/Name";
var word = "New";
var result = the_string.substring(0, the_string.lastIndexOf('/') + 1);
alert(result + word);
使用正则表达式,例如,此正则表达式:
yourString.replace(/\/\S+/, '/the new stuff...');
在控制台中:
> var cityName = 'Djakarta';
> var line = 'World/Name Something SomethingElse';
> line.replace(/\/\S+/, '/' + cityName);
"World/Djakarta Something SomethingElse"
您可以使用它来执行复杂的搜索和替换操作。有关的详细信息您可以尝试以下方法:
var str = 'World';
alert(rep(str));
function rep(str)
{
if(str.indexOf('/')>-1)//present
{
alert(str.substring(str.lastIndexOf('/') + 1,str.length));
var res = str.replace(str.substring(str.lastIndexOf('/') + 1,str.length),'custom_word');
return res;
}
else{
alert(' / not present');
return str;
}
}
注意:如果在/之后出现文本,则将其替换为自定义单词。除了Mathias的答案外,您还可以将正则表达式与函数一起使用,如下所示:
var myString;
.
.
.
myString.replace(/\/(\S+)/g, function (found, value) {
// found == "City/NewYork"
// value == "NewYork"
return found + "Altered";
}
例如,这将在每个x/y使用x/y进行更改此regexp运行良好。但是,如果有两个/字符,它就被切掉了。例如:世界/国家/城市。结果将是世界/新的东西,国家被削减了。当然。如果您想要一个能完美地为您的数据集工作的regexp,我们需要确切地了解数据集。