2016-07-31 29 views
-1

所以,我有这个长的申请表格,我在联系表单7插件WordPress上做的。 的标签是这样的:移动一块字符串

[text text-758 "Building name"] 

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

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

现在我不得不在所有的应用程序的变化。 我的问题(我是JavaScript的初学者):我可以写一个脚本来为我做这个吗? 我宁愿学习用普通的JavaScript代替Jquery。 也许正则表达式会有帮助吗?和insertBefore()? 我想在我的控制台中执行此操作,或者说... codepen。 没有id或类,只是一个很大的“字符串”。 我被卡住了。

+2

解决最初的问题在页面渲染得到前。在整个页面中使用javascript进行文本置换不是一个好主意 – RomanPerekhrest

+1

我还没有发布页面。我只想复制整个事情并编写一个脚本,该脚本在控制台或codepen中运行,然后仅在发布结果后复制结果。 – teyi

回答

0

正如在评论中提到罗马,你应该可以解决来源,而不是应用客户端补丁。

也就是说,你可以在本地使用Javascript修复源代码 - 虽然Node.js可能是这种批处理作业的更好选择。

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

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);

+0

谢谢,它的工作原理,但这是一个文本字段。我对其他人做什么?有30个文本字段与此类似。 – teyi

+0

它的工作原理!再次感谢你! – teyi

0

好了,你无论如何都应该解决您的标签建筑规范,但现在这件事情可以帮助:

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

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

谢谢,它的工作原理,但我有30个相似的文本字段,我需要更改... – teyi

+0

使这些数组,并使用提供的正则表达式映射它们到你需要的形式,所以你最终得到正确的标签块数组 – Marcus

+0

哦男人,试图做到这一点,但我有[]每个字符串内,有时两次......我必须逃避他们? – teyi