• 締切済み

javascript replace

javascriptを使用してサイト内の特定の文字を削除したいと思っています。 他社CMSサイトのため、削除したい文字は、こちらから削除できません。 そのためJSを使用できればと感がました。 調べてみると文字の置換は「replace」を使用するというところまではわかったのですが、 ページ読み込み後に自動で実行される記述サンプルがなかったので、 教えていただければ幸いです。 ちなみに削除したい文字はサイト内に複数存在します。 宜しくお願いたします。

みんなの回答

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

よくわからないのですが問題が発生しているのはonloadの部分だけですか? それならEventListenerを使えば解決するはずですが window.addEventListener("load",function(){ var b=document.getElementsByTagName("body")[0]; b.innerHTML=b.innerHTML.replace(/にわ|には/g,""); }) 他の回答を引用させていただくとこんな感じで

benkei1980
質問者

お礼

ご回答ありがとうございます。 やはりうまく動きませんでした・・・。 お手数おかけしましたm(__)m

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

いや、だから・・・ まちがいなくこの機能をECに組み込むのはNGです。 繰り返しになりますがサーバーサイドで処理してください とはいえ・・・ >「まとめてカートにいれる」という機能 おそらくonloadがバッティングしているのだと思います。 ほかのjsライブラリをつかっているなら、そのライブラリの onloadの部分で指定してやればいいでしょう。 結論:スキル的にきびしいようならあきらめてください

benkei1980
質問者

お礼

ありがとうございます。 JSライブラリは使用していないので、もはや解決できそうにないですね・・・。 なんとか別の方法を考えてみます。 お手数おかけしましたm(__)m

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

きっちりやるにはサーバー側のプログラムで処理しないと難しいですね。 やっつけでよければこんな感じ (ただしいろんな意味であまりよくない方法です) <html> <head> <script> window.onload=function(){ var b=document.getElementsByTagName("body")[0]; b.innerHTML=b.innerHTML.replace(/にわ|には/g,""); } </script> </head> <body> <div>うらにわにはにわにわにはにわにわとりがいる</div> <div>わにはにわにはいない</div> </body> </html>

benkei1980
質問者

お礼

なるほど。 うまくいきました(^^) ありがとうございます。

benkei1980
質問者

補足

すみません。こちらのご回答ですが、置換は成功したのですが、一部の機能が使えなくなりました。 当方ECサイトで使用しているのですが、「まとめてカートにいれる」という機能が使用できなくなりました。 申し訳ございませんが、これ以外に何かありませんでしょうか(^^;;

関連するQ&A

  • str_replaceとpreg_replace

    phpで、汎用環境で文字化けしそうな文字を,ad hoc に機種依存しない文字に置換する過程に関して質問させて頂きます。 例えば(株)を(株)に、置換等です。 宜しくお願いいたします。 こちらのページのコードで、 http://memo.xight.org/2006-06-19-13 もともと、以下のようなコードサンプルA(推測)が、 -----▼サンプルA $arr=array('\xE3\x8A\x91' => '(株)',………); foreach ($arr as $key => $val) {  $str_rep = preg_replace("/$key/", $val, $str_rep); } -----▲ こちらの方の指摘で、 http://blog.poyo.jp/archives.php/categ-1/year-2006/month-6/id-1150817399 -----▼サンプルB $arr=array('\xE3\x8A\x91' => '(株)',………); return str_replace( array_keys( $arr), array_values( $arr), $str); -----▲ コードサンプルBに、変更(改善?)されたようです。一見、なるほどと思うのですが、実際にサーバ上で試したところコードサンプルAは問題なく機能しますが、コードサンプルBは機能しません。(特殊文字にマッチしない) 私の環境の問題で機能しないだけなのか、サンプルBを提示していた方の早まりなのか、判断がつかずに困っています。 ただし、'\xE3\x8A\x91'のようなユニコード文字列を、(株)といった文字に打ち変えて実行すると、きちんと認識して、置換が行われます。 str_replaceとpreg_replaceの機能の違いによるものだと思ったのですが、今回、このコードを利用し、80,000件位のコメントに置換をかけようとしているため、少しでも早く軽く置換できる方法を探しております。 見た目的にはループで走査していくよりも、str_replaceでスパっと置換した方が早そうに感じるので、できるならばサンプルBのような書き方で置換する様をベンチマークしたいと考えております。 なぜ、コードサンプルBが機能しないのか、また、正常に機能させるためには何が必要なのか、アドバイス・ご教示頂けましたら幸いです。 ちなみにコードサンプルAの元は、以下かと思いますが、こちらはまったく問題なく機能することが確認できています。 http://www.happytrap.jp/blogs/2009/09/11/1393/

    • ベストアンサー
    • PHP
  • [Access2000] Replace関数がない?

    レコードの特定文字列を置換しようと思い、いろいろ調べたところ、Access2000から「Replace」関数というのが使えるようになったとのこと。 早速クエリーで使用したところ、「式の中に未定義関数 Replace があります」というエラー表示が…。式ビルダの組み込み関数を確認しましたが、Replaceという関数はやはり存在しないようです。 何か間違っているのでしょうか?お力添えいただければ幸いです。

  • エクセルのReplaceで使える「?」(ハテナ)は

    エクセルのReplaceで使える「?」(ハテナ)は、 ワイルドカードとして藻文字列としても機能するのでしょうか? Sub Sample() Range("a1").Value = "aaa" Range("a1").Replace What:="a?a", Replacement:="aba" Range("a1").Value = "aaa" Range("a1").Replace What:="a?a", Replacement:="aba?" End Sub を実行すると 「?」は、文字1文字のワイルドカードとして機能しつつ、 最後に「?」が付く事から、文字列として?が置換されていますが この区別ってないのでしょうか?

  • javascriptを使ったページ内の特定文字の置き換え

    ブラウザーにページを表示させたときに一部の特定の文字だけを違った文字に置き換えたいと思っています。 ページ全体の該当文字ならば、 <script type="text/javascript"> <!-- document.body.innerHTML=document.body.innerHTML.replace(/置換前/g,'置換後');focus(); // --> </script> でページ全体の文字が置換できるのですが、下のケースのように一部の場所(DIV内)の場合はどのようにすればよろしいのでしょうか。 <html> ・ ・ <div class="sample"> <a href="hogehoge">置換前</a> </div> ・ ・ </html> よろしくお願いいたします。

  • Access リストから文字の置換(Replace)  

    Accessで特定の文字を置き換えたいです。 ただ、置換するだけなら、Replace([商品名],"ⅰ","1")でいいような気がしますが、 置換したい文字が複数あり 今後も増えていくのでテーブルでリストを作成しました。 元の文字 置換文字 ⅰ     1 ⅱ     2 I     A II     B 元の文字を、置換文字に置き換えたいです。 また、商品名は、 I たばこ II 文房具 になっているものや、 商品券ⅰ、ビール券ⅱ と言うのがあるので、置換文字の入る場所はバラバラです。 質問がわかりにくくてすみません。 どうぞよろしくお願いします。

  • Replace関数

    更新クエリにて、品名置換のReplace関数使用で、サブフォームからボタン操作で更新クエリを実行したら以下の事が出来ます。 Replace([品名],"りんご","りんご青森") 品名 りんご を りんご青森 に置換 Replace([品名],"青森","") 品名 の 文字列から 青森 を無くす置換 これをベースに、サブフォームに、テキストボックス1 テキストボックス2 を配置して テキストボックス1 → りんご を テキストボックス2 → りんご青森 に置換 サブフォームを表示しているフォーム1から参照 Replace([品名],[Forms]![フォーム1]![テキスト1],[Forms]![フォーム1]![テキスト2]) サブフォームから参照 Replace([品名],[Forms]![フォーム1]![履歴].[Form]![テキスト1],[Forms]![フォーム1]![履歴].[Form]![テキスト2]) 上記のフォームに配置したテキストボックスから、任意の置換情報を入力して置換する流れを作っているのですが、いずれのフォームからもテキストボックスの内容を認識出来ない様です。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • JAvaScriptの外部ファイルの記述について

    HTML内にJavaScriptの処理書くのが嫌で、外部ファイルにしてJavaScriptを読み込むようにしたのですが、このファイルに、実行したい処理を複数書いてしまうとHTMLで正しく処理されなくなるのは何故ですか?.jsファイルには処理は1つしか記述できないのでしょうか?CSSファイルみたいに1つのファイルに何個も処理を記述してHTMLに反映させるようにしたいのですが・・・。どなたにも質問できず困っています。どなたか教えて下さい。jsファイルには処理は1つしか記述できないものなのかどうか回答お願い申し上げます。

  • JavaScriptドメイン判定し処理有効化

    Javascriptで設置サイトのドメインを取得し そのドメインでない場合以下処理を実行させるものを組みたいです。 特定のドメイン内しか動作しない.jsファイルというイメージです。 もちろんこの処理を書きかえれば別ドメインでも動くのですが 簡易セキュリティーとして考えています。 何かサンプル的コードなどわかる型いたらお助けください。 php風に書くと jsファイル内で頭に $localdomein=$_SERVER["HTTP_HOST"]; if($localdomein=="example.com") { Js処理 } のようなイメージです。 これをJavascriptでやりたいです。

  • ダブルクォーテーションのreplaceの方法

    JavaScriptで文字を置換する際に AAA = new String(AAA).replace(/ZZZ/g, "QQQ"); にしますよね、これで文字列中のダブルクォーテーション「"」を 任意の文字に変換したいのですが、何か良い方法はないでしょか? よろしくお願いします。

  • replaceで正規表現を利用したい

    ・置換前文字列 … 9月15日(土)12時16分準備 ・置換後文字列 … 2012-09-15 12:16:00 ■質問1 ・(土)を削除する方法を教えてください ・time = time.replace(/(*)/,"");? ■質問2 ・0がついていなければ、先頭に0を付与する方法は? ■質問3 ・まとめてやる方法はあるでしょうか?  下記みたいにひとつひとつやる方法しか思いつかないのですが…  time = time.replace("準備","");  time = time.replace("月","-");  time = time.replace("日","半角空白");  time = time.replace("時",":");  time = time.replace("分",":00");

専門家に質問してみよう