2012-03-09 5 views
0

に正規表現で文字列を置き換えます私はjavascriptの文字列変数内の次のテキストを持っているのJavaScript

ここにいくつかのテキストPage.Titleは=「AAOとの情報」です。ここでは複数のテキスト

は、私は次のことをターゲットにし、それが(引用符を含む)のjavascriptの変数に置か取得する必要がある:

Page.Title =「インフォAAOと」;

ので、私はこれにそれを操作することができます:

Page.Title = "123といくつかの他の情報"。

、それは次のようになりますので、交換して文字列に戻す:

ここSOMテキストPage.Title =「123のようないくつかの他の情報」です。ここでは、より テキスト

「Page.Titleは=」常に同じだけでなく、最後のセミコロンですが、のような引用符の間の文字列、次のとおりです。 「AAOとの情報」。 は異なる可能性があります。

どのようにしてその文字列を別の文字列で変更するとよいでしょうか?

これは私が試したものです:

strFind = /Page.Title = [a-z]+/; 
strHTML_value = here is some text Page.Title = "info with åäö"; here is more text 
strToBeReplace = strHTML_value.match(strFind)[1] 
alert(' strToBeReplace ' + strToBeReplace); // = Page.Title = "info with åäö"; 
strNewValue = Page.Title = "some other info like 123"; 
strHTML_value = strHTML_value.replace(strToBeReplace, strNewValue); 
+1

2本の線でも文法的に正しくないです... –

+1

はバックスラッシュでエスケープ引用符と引用符の内側にバックスラッシュでエスケープバックスラッシュがあるだろうか?引用されたテキストは二重ではなく一重引用符を使用しますか? –

答えて

0

次の正規表現/コード試してみてください:"[^"]+"シーケンスは、1つまたは複数の非引用符に続いて、開口部の引用を見つけた

var str = 'here is some text Page.Title = "info with åäö"; here is more text'; 
var replaceWith = 'some other info like 123'; 
str = str.replace(/(.*Page\.Title = ")([^"]+)(".*)/gi, '$1' + replaceWith + '$3'); 

注意を、続いて引用符が続きます。

+0

あまりにも遅れて私の答えは、私のコードは、より少ないテキストの量に一致します。 – Saebekassebil

+0

このような知識を持っていることはすばらしくなければなりません:-)とてもありがとうございます。それはまさに私が探していたものでした。あなたたちは本当の英雄です! – lars

+0

@lars私は嘘をつきません。それはかなり素晴らしいです。 :-)しかしStackOverflowやその他のサイトでは、常に自習することで簡単に得られます。あなたがより良くなり、より多くを学ぶことを絶えず求めているなら、あなたはそうです! – GregL

1

は、JavaScriptの文脈におけるいくつかの正規表現で見たいと思うかもしれません:すべてのコードの https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

まず、いくつかの構文エラーがありますが、それ以外にも、あなたの正規表現は、あなたがそれがやりたいことはありません。あなたのコードの

var titleRegex = /Page\.Title\s=\s(".+")/; 
var stringValue = "here is some text Page.Title = \"info with åäö\"; here is more text"; 
var replaceValue = "A New Title"; 
var newTitle = stringValue.replace(/(Page\.Title\s=\s")([^"]+)(")/, '$1' + replaceValue + '$3'); 
関連する問題