Javascript 查找字符串中的文本并替换它

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

我有一个包含字符串表达式的变量。此表达式具有以下模式:

Property_表达式运算符值

proeprty_表达式可以如下所示:

世界 世界/名称 城市/名称

我想查找/之后的文本,如果它存在,则替换为自定义文本。我该怎么做呢?

你可以试试这个

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,我们需要确切地了解数据集。