我有一个包含字符串表达式的变量。该表达式具有以下模式:
propery_expression operator value
proeprty_expression
可能如下所示:
World
World/Name
City/Name
我想在/
之后找到文本,如果它存在,则替换为自定义文本。我怎么能这样做?
答案 0 :(得分:1)
你可以试试这个
var the_string = "City/Name";
var word = "New";
var result = the_string.substring(0, the_string.lastIndexOf('/') + 1);
alert(result + word);
答案 1 :(得分:1)
使用正则表达式,例如这个:
yourString.replace(/\/\S+/, '/the new stuff...');
在控制台中:
> var cityName = 'Djakarta';
> var line = 'World/Name Something SomethingElse';
> line.replace(/\/\S+/, '/' + cityName);
"World/Djakarta Something SomethingElse"
您可以使用它来执行复杂的搜索和替换操作。有关Mozilla's documentation
的详情答案 2 :(得分:1)
你可以试试这个:
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;
}
}
注意:如果文字出现在/
之后,则将其替换为“custom_word”。
答案 3 :(得分:1)
除了Mathias的答案之外,您还可以将RegEx与函数一起使用,如下所示:
var myString;
.
.
.
myString.replace(/\/(\S+)/g, function (found, value) {
// found == "City/NewYork"
// value == "NewYork"
return found + "Altered";
}
例如,这将使用“x / yAltered”
更改每个“x / y”