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

时间:2014-07-21 08:29:08

标签: javascript regex

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

propery_expression operator value

proeprty_expression可能如下所示:

World
World/Name
City/Name

我想在/之后找到文本,如果它存在,则替换为自定义文本。我怎么能这样做?

4 个答案:

答案 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;
    }
}

DEMO

注意:如果文字出现在/之后,则将其替换为“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”