移动一根绳子

时间:2016-07-31 17:06:21

标签: javascript string

所以,我有一个很长的申请表,我在WordPress上用联系表格7插件制作。 标签看起来像这样:

[text text-758 "Building name"]

我犯了一个错误:我忘记添加标签了。它应该是这样的:

<label>Building name[text text-758]</label>

现在我必须在所有应用程序中进行更改。 我的问题(我是JavaScript的初学者):我可以写一个小脚本来为我做这个吗? 我宁愿学习用纯JavaScript而不是Jquery来做。 也许正则表达式会有所帮助?和insertBefore()? 我想在我的控制台中这样做或者说... codepen。 没有id或类,只是一个很大的“字符串”。 我被卡住了。

2 个答案:

答案 0 :(得分:0)

嗯,你应该修改你的标签构建代码,但是现在这个东西可以帮助:

var reg = /\[(.*)\s"(.*)"]/
  , test = '[text text-758 "Building name"]'

test.replace(reg, '<label>$2[$1]</label>') // should return what you need

答案 1 :(得分:0)

正如Roman在评论中所提到的,你应该修复源代码而不是应用客户端补丁。

也就是说,您可以在本地使用Javascript来修复源代码 - 虽然Node.js可能是这批次工作的更好选择。

注意: .insertBefore()是一种DOM操作方法。不是字符串操作方法。这就是为什么你的问题不明确的原因。

&#13;
&#13;
var str =
  'Hello World! [text text-758 "Building name"]' +
  'This is a test. [text text-123 "Foo"]';

str = str.replace(
  /\[([a-z]+ [a-z]+-\d+) "([^"]+)"\]/gi,
  "<label>$2[$1]</label>",
  str
);

console.log(str);
&#13;
&#13;
&#13;