2016-07-31 7 views
-1

WordPressの連絡先フォーム7プラグインで作成したこの長い申請書があります。 タグは次のようになります。文字列を移動する

[text text-758 "Building name"] 

と私はミスを犯した:私はラベルを追加するのを忘れ。

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

すべてのアプリケーションで変更する必要があります。 私の質問(私はJavaScriptの初心者です):これを行うには少しスクリプトを書くことはできますか? 私はむしろJqueryの代わりに単純なJavaScriptでそれを行うことを学びたいと思います。 正規表現が役に立ちますか?そして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

ありがとう、それは動作しますが、それは1つのテキストフィールドです。他の人たちは何をしますか?そのようなテキストフィールドには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

男、それをしようとしているが、私は各弦の中に、時には2回...私はそれらをエスケープする必要がありますか? – teyi

関連する問題