• 締切済み

jqueryで文字列を置換したいのですが。

jqueryで文字列を置換したいのですが。 例えば<a href="http://*****/database.cgi?keys10=検索文字01"> みたいなアンカーがあったとして、これの”検索文字”の部分のみを置換して 例えば<a href="http://*****/database.cgi?keys10=検索文字02"> の様に置換することは可能でしょうか。 何卒、宜しくお願いいたします<m(_ _)m>

みんなの回答

  • nue2501
  • ベストアンサー率100% (3/3)
回答No.1

Aタグ自体にクラス(できればID)などがあれば、絞り込みが出来て処理速度も向上するのでいいのですが、そうでもなさそうなのでページ内のAタグを全部取り出して、処理をすることで対応できるのではないかと思います。 例えば、 $(function() {  $('a').each(function() {   if ($(this).attr('href').match(/\/database[.]cgi[?]keys10=検索文字01$/)) {    $(this).attr('href', 'http://*****/database.cgi?keys10=検索文字02');   }  }); }); といった感じです。この場合は、置換したい文字列をハードコードしているので、置換したいURLのドメインが同一である必要があります。ドメインなどに関係なく置換したい場合は、 サンプル2: $(function() {  $('a').each(function() {   var hrefText = $(this).attr('href');   if (hrefText.match(/\/database[.]cgi[?]keys10=検索文字01$/)) {    hrefText = hrefText.replace(/\/database[.]cgi[?]keys10=検索文字01$/, '/database.cgi?keys10=検索文字02');    $(this).attr('href', hrefText);   }  }); }); といった感じでしょうか。この場合は、リンクURLを取り出して「/database.cgi?keys10=検索文字01」だけを対象に置換するので「http://*****」の部分に影響はありません。 ※ソース部分のインデントは、見やすくするため全角スペースを利用していますのでご注意ください。

関連するQ&A

  • 文字列の置換

    お世話になります。 このような文字列置換可能でしょうか '&nbsp;&nbsp;|&nbsp;&nbsp;<a href=・・・>(・・・' ・・・は、任意の文字列 を '&nbsp;&nbsp;<a href=・・・>(・・・' と、いうようにです。 つまり、文字列の中に'|&nbsp;&nbsp;'と、'('が有ったら、 '|&nbsp;&nbsp;'のみを取り除いた文字列を作成する と、いうことです。 そして、文字列中に同様なパターンが複数回有れば、同時に全てを同様に処理したいのですが。 よろしくお願いいたします。

  • 任意の文字列で囲まれていない任意の文字列を置換するには

    任意の文字列で囲まれていない任意の文字列を置換したいです。 たとえば、『 [[ 』と『 ]] 』で囲まれていない『http://hogehoge/』を『<a href="http://hogehoge/">http://hogehoge/</a>』に置き換えるにはどうすればいいのでしょうか。 具体的には下記の【置換前】のテキストを【置換後】のような感じにしたいです。 【置換前】 http://hogehoge/ [[http://hogehoge/]] http://hogehoge/ http://hogehoge/ [[http://hogehoge/]] 【置換後】 <a href="http://hogehoge/">http://hogehoge/</a> [[http://hogehoge/]] <a href="http://hogehoge/">http://hogehoge/</a> <a href="http://hogehoge/">http://hogehoge/</a> [[http://hogehoge/]] preg_replaceかereg_replaceのどちらかで例を挙げてもらえるとありがたいです。ご教示お願いします。

    • ベストアンサー
    • PHP
  • jQuery 「$」を置換対象にしたい場合

    jQuery でURL内の$を削除したいのですが、指定できません。 別の文字列にすると置換できますので、動作はできているようですが、 「$」を置換対象にするには、どのように書いたらいいでしょうか。 今指定している内容は <a class="dollarreplace" href="http://hodehode.com/url文字列途中で$が入ります" target="_blank">リンク文字</a></p> <script> $(document).ready(function() { $("a.dollarreplace").each(function() { var replace = null; var replace = $(this).attr('href').replace(/$/g,''); $(this).attr('href',replace); }); });</script> となっています。 よろしくお願いいたします。

  • 文字列の置換

    変数に含まれる isbn:・・・・ asin:・・・・ という文字列を <a href="http://<略>/・・・・/">isbn:(asin:)・・・・</a> と置換したいのですがどのように処理すればいいかわかりません。 isbn,asinは半角で大小文字の区別は無し :の後はアルファベット・数字・_です。

  • 特定の文字列を含むテキスト置換について

    HTML編集で困っているのでお教え下さい。 ある特定の文字列を含む内容の一部を置換したいのですが、 正規表現の使用できるエディタで作業は可能でしょうか。 例としましては <a href = "xxx/xxx/xxx.pdf> <a href = "yyy/yyy/yyy.html> のような表記で、「pdf」を含む文字列のみ <a onclick href = "xxx/xxx/xxx.pdf> と置換したいのですが。よろしくお願いいたします

  • 文字列置換の方法

    下記の長い文字列をエディタで置換したいのですが、長くなると置換できません。このような長い文字列(?)は一般的なエディタでは置換できないものなのでしょうか。 【置換前】 <FORM ACTION="cargo.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> 【置換後】 <FORM ACTION="cargo.cgi" METHOD="POST">

  • 文字列の置換

    文字列の置換 たとえば, if(abcd) という文字列があったときに,これを while(abcd){ に置換するにはどうすればいいでしょうか(同じような置換をしたいところが文章中にいくつもあるとします).つまり,文字列の一部をそのままにして置換するということです.いまの場合だと if( → while( はできたとしても, ) → ){ は,文章中に“)”がたくさんある場合は難しいですよね.wordなら,ワイルドカードを使って if(*) とすれば,検索はできるのですが,そのまま置換すると while(*){ となってしまい,*がそのまま残ってしまいます.どうにかできないでしょうか?

  • ページ全体を検索して特定文字列を置換する

    まず初めに、ASPカテゴリでも同様の質問をしています。 もしかしたらJavaScriptの方が実現が容易かもしれない、と思いこちらでも質問させて頂くことにしました。 もしマナー違反であるのならば指摘して下さい。 本題ですが、ページ全体を検索して特定の文字列を置換したいのです。 例えば、Index.htmlというページの中から「管理」という文字列を検索し、「<a href=***.html>管理</a>」というように置換したいです。

  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java
  • タグにはさまれている文字以外を置換したい

    あるマルチバイト文字列に対して、特定の文字を正規表現で置換したいのです。 そのマルチバイト文字列には、htmlの<a>タグが混じっています。(混じっていない場合もあります。) 置換したいのは、<a>タグで囲まれている文字以外の文字なのですが、正規表現としてどのようなパターンにすれば出来るのか悩んでおります。 ------------------------------------------------- //置換前のマルチバイト文字列 "朝一番のコーヒーは<a href="index.html">3時のコーヒーや</a>食後のコーヒーより旨い" //検索・置換対象となる文字列 "コーヒー" //置換を行う文字列 "紅茶" //置換後のマルチバイト文字列 "朝一番の紅茶は<a href="index.html">3時のコーヒーや</a>食後の紅茶より旨い" ------------------------------------------------- ↓こちらを参考にしてみたのですが、ちょっとやりたいことと違うみたいでうまくいきませんでした。 http://www.din.or.jp/~ohzaki/regex.htm#ReplaceOutside ================================================= $string = "朝一番のコーヒーは<a href="index.html">3時のコーヒーや</a>食後のコーヒーより旨い" $pattern = '/((?:\G|>)[^<]*?)コーヒー/'; $result = mb_ereg_replace($pattern, '\1紅茶', $string); echo $result; ================================================= 是非、皆様に力を貸して頂きたく、どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう