剥去特定字符并替换为单词

时间:2018-01-08 10:00:23

标签: javascript

如果我有这个字符串:

This string should @[1234] by another word

我想替换以删除@ []并将'1234替换为'test'字,例如结果是:

This string should test by another word

有没有办法用js做到这一点?

5 个答案:

答案 0 :(得分:1)

您可以使用正则表达式通过以下代码测试来重新生成@ [XXX]:

var string = "This string should @[1234] by another word";
console.log(string.replace(/@\[[0-9]+\]/gi, "test"));

答案 1 :(得分:0)

你有一个字符串: This string should @[1234] by another word

您想要将@[1234]替换为test

Javascript有一个名为replace()的方法,它有两个参数,你要替换的模式,以及你要用它替换它的内容。

代码在这里:



console.log("This string should @[1234] by another word".replace("@[1234]", "test"))




答案 2 :(得分:0)

我建议首先定义从id到替换的映射。

然后,您使用string.replace(regex, callback)与匹配@[1234]的正则表达式或括号内的任何其他ID,并捕获捕获组中的ID。

最后,您提供一个回调函数,它接收捕获组的值作为第二个参数,并根据您的映射执行替换:



const input = 'This string should @[1234] by another word';
const replacements = {'1234': 'test'}; 
const output = input.replace(/@\[(\d+)\]/g, (match, id) => replacements[id]);

console.log(output);




答案 3 :(得分:0)

我猜你有多个要替换的文字?如果是这样,您可以将String.replace函数与回调一起使用,该回调提供替换值。像这样:



var repls = {
  "1234": "test"
};

var text = "This string should @[1234] by another word";

var result = text.replace(/@\[([0-9]+)\]/g, function(entireMatch, key) {
    return repls[key];
});

console.log(result);




答案 4 :(得分:0)

以下是一些不使用正则表达式的代码,只有split()join(),以及字符串作为分隔符。

str='This string should @[1234] by another word';
console.log(str.split('@[1234]').join('test'));