【问题标题】:In Javascript, what is the simplest way to insert text into a string?在Javascript中,将文本插入字符串的最简单方法是什么?
【发布时间】:2015-01-28 16:45:50
【问题描述】:

我有一个问题,我需要在 javascript 中获取一个字符串(这是一个查询字符串)并将其转换为另一个查询字符串(以避免冲突)

我输入的原始字符串为:

fieldA=10&fieldB=10&fieldC=10&fieldD=10&arrayfieldA=100&arrayfieldA=200

我想带一个前缀(在我的情况下,它将类似于“slides[0]。”并将它放在所有项目的前面,所以我最终得到:

slides[0].fieldA=10&slides[0].fieldB=10&slides[0].fieldC=10&slides[0].fieldD=10&slides[0].arrayfieldA=100&slides[0].arrayfieldA=200

在javascript中,将第一个字符串转换为第二个字符串的最简单方法是什么?

我可以使用
* 简单查找/"replace()" (.replace("&", "&slides[0]")
* 转换为数组,然后返回一个连接的字符串
* 其他人?

目前我正在这样做:

 function EnrichString(startString, prefix) {
       return prefix + startString.replace("&", "&" + prefix);
  }

但我想确认这种方法是否存在任何问题?

【问题讨论】:

  • 你问的最简单,但标题说“高效”。这些是非常不同的,甚至“最简单的”也可以有多个定义。请更清楚
  • 到目前为止您尝试过什么?您尝试过的解决方案是否被证明效率太低?
  • @GeorgeMauer 或者 OP 只要求 any 方式:)
  • @ Matt Burland - 用我使用的选项更新了问题。他们都工作,但我想弄清楚是否有任何问题
  • 如果您的解决方案有效,那么这听起来像code review

标签: javascript jquery arrays string parsing


【解决方案1】:
var queryStringParts = queryString.split('&');
var pairs = queryStringParts.map(function(str) { return str.split('=') })
var rewrittenParts = pairs.map(function(pair){ 
                          return 'slides[0].'+pair[0]+'='+pair[1] 
                     });
var newQuerystring = rewrittenParts.join('&');

编辑正如 cmets 中指出的那样,在这种特定情况下,我们可以跳过拆分成对的步骤,然后直接执行

var queryStringParts = queryString.split('&');
var rewrittenParts = queryStringParts.map(function(part) { 
                          return 'slides[0].'+part 
                     });
var newQuerystring = rewrittenParts.join('&');

【讨论】:

  • 如果你什么都不做,只是通过= 将它们重新组合在一起,为什么要通过= 拆分?
  • @Travesty3 我确实用 = 加入,只是在第三步中手动使用字符串连接。
  • 我知道,我想知道你为什么用= 分割每个部分?您只是重新连接在一起,根本没有修改字符串的那部分。
  • 哦,我明白你的意思了,我可以只是前缀。好点,习惯的力量。
  • 为什么不只是 newQuerystring = "slides[0]." + queryStringParts.join("&slides[0].") 我认为它会更快,但至少它更简单,而且它也可以是一个班轮:newQuerystring = "slides[0]." + queryString.split('&').join("&slides[0].")
猜你喜欢
  • 2011-03-25
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多