【问题标题】:Can I use replace with unknown string我可以用未知字符串替换吗
【发布时间】:2017-10-29 07:00:55
【问题描述】:

假设我有字符串

'bold':'','Dateformat':'mm/dd/yyyy','Lowercase':''

'bold':'','Lowercase':'','Dateformat':'mm/dd/yyyy'

'Dateformat':'mm/dd/yyyy' 

可以在逗号分隔的字符串中的任何位置

我想替换

'Dateformat':'mm/dd/yyyy' with blank

mm/dd/yyyy

可以是任意字符串(动态值)

请告诉我该怎么做。 提前感谢您的帮助。

【问题讨论】:

  • 为什么我感觉这是个JSON文件什么的

标签: javascript jquery regex


【解决方案1】:

您可以从字符串中创建一个 Javascript 对象,并将键的值设为""

var string = "'bold':'','Dateformat':'mm/dd/yyyy','Lowercase':''";
var obj = JSON.parse('{' + string.replace(/'/g, '"') + '}');
var obj2 = JSON.parse('{' + string.replace(/'/g, '"') + '}');

if (obj.Dateformat) {
  obj.Dateformat = '';
}

string = JSON.stringify(obj).replace("{", '').replace("}", '');

console.log(string);

//or delete the whole key

if (obj2.Dateformat) {
  delete obj2.Dateformat;
}

string = JSON.stringify(obj2).replace("{", '').replace("}", '');

console.log(string);

【讨论】:

  • @sabithpoker 你的代码很好,但你能告诉我我正在尝试使用像 obj 这样的 obj 变量。 但它会寻找变量名而不是值。
  • 忽略这一点,您的代码对我很有帮助,所以我确实接受了您的回答。谢谢
【解决方案2】:

这是你想要的吗??

var str = "'bold':'','Dateformat':'mm/dd/yyyy','Lowercase':''";

var str_to_replace = "'Dateformat':'mm/dd/yyyy'";
var new_str = str.replace(str_to_replace,'');


console.log(new_str);

【讨论】:

  • 实际上 mm/dd/yyyy 是动态值,这可以是任何其他字符串,具体取决于用户输入。我想我需要在那里使用正则表达式,但我不知道如何使用它。
  • @Rik 你说的其他字符串是什么意思?它将是任何格式的日期?不是吗?
  • @Alive 没必要,可以是任何东西。
猜你喜欢
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多