• ベストアンサー

JavaScriptのreplace関数について

文字列 var str="g.ii,g.txt,as.jpeg,ssss,jpg,s.jpg,xyz.gif,zzz.gif,sy.imag"; (実際はもっと長く同じものがいっぱいある) において文字列 var word; //<-----example:word="xyz.gif"; にはいっている文字を除去したいのですがどうしたらいいのでしょうか? wordは文字列であって正規表現でないので str=str.replace(word,""); にはできそうもないし・・・・

  • nubou
  • お礼率62% (293/470)

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

できますよ。 お試しあれ。

nubou
質問者

お礼

newstr=(newstr).match(/\w+\.\w+/i); はエラーに成り newstr=(""+newstr).match(/\w+\.\w+/i); としないといけないみたいなのでnewstrは文字列ではなくて正規表現なのかもしれませんね だからか?うまくいきました ありがとうございました

関連するQ&A

  • JavaScriptの正規表現/?<.+?>/について

    strからHTMLのタグを取り除いた文字列をxにしまうため var x=str.replace(/<.+?>/g,""); を使うそうですが /<.+?>/g をなぜ使うのかが分かりません /<.+>/g がまずいのは分かりますが・・・・ 教えていただければ幸いです

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

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

  • str_replace関数について

    str_replace (検索文字, 置換後の文字列, 元の文字列) str_replaceの「元の文字列」に2つ以上の変数を当てはめたいのですがどのようにすればよいでしょうか?

    • ベストアンサー
    • PHP
  • javascriptで文字列の差分を取得

    var str1 = "abc"; var str2 = "abdec"; var str3 = "abcdef"; var str4 = "defgabc"; 元々の文字列文字数固定ではない(例として)「abc」がありまして、 その最初か最後か途中の文字列の間に何かしらの文字列が入る可能性があります。 そのように追加された文字列を割り出したいのですが、 どのようにしたら良いでしょうか?アイディアお持ちでしたらよろしくお願いします。

  • replaceが再帰的に実行されない

    ファイル名に使えない半角文字を、対応する全角文字に置き換えるコードを作っています。問題自体は別の方法で解決済みですが、最初に想定した方法がうまくいかなかった理由が分からないので、納得する答えを得る為に質問させて頂きます。以下のようなコードを書きました。 var target = "\\/:*\"<>|\\/:*\"<>|"; var RENAME = [   [ "\\", "/", ":", "*", "?", "\"", "<", ">", "|" ],   [ "¥", "/", ":", "*", "?", "”", "<", ">", "|" ] ]; for (var i=0, l=RENAME[0].length; i<l; i++) {   target = target.replace(/RENAME[0][i]/g, RENAME[1][i]); } alert(target); 変数target内には、ファイル名に使えない文字「\/:*?"<>|」を2回記述しています。この文字列がすべて全角文字に置き換わっていて欲しいのですが、うまくいきません。まず target = target.replace(/RENAME[0][i]/g, RENAME[1][i]); が次のようになっている場合 target = target.replace(RENAME[0][i], RENAME[1][i]); これは本当に単純な1回のみの文字列置き換えなので、前半の文字のみ全角に置き換えられ、後半の文字はどれも半角のままです。結果は「¥/:*”<>|\/:*"<>|」でした。ですので、 target = target.replace(/RENAME[0][i]/g, RENAME[1][i]); というように前後を/で囲み、オプションでgをつけることで置き換えが再帰的に行われ、後半の文字も全角に置き換わることを期待したのですが、今度は置き換えが全く行われず、変数target内の文字はすべて半角で「\/:*"<>|\/:*"<>|」のままでした。 この書き方にはどのような問題があるのでしょうか?

  • javascript「replace」について

    URLを取得した後、そのURLを置換したいのですが http://www.xxxxx.com/a=123456/b=12345678 ※「a=」、「m=」の後ろの数字は変化します というものを、 http://www.xxxxx.com/12345678/123456 「a=」、「b=」の数字部分のみ前後逆にして置換したいのですが やり方が分かりません。 どこかの掲示板で var aTag = document.getElementsByTagName('a'); var i = 0; for( i = 0; i < aTag.length; i++ ) { if( aTag[i].href.indexOf( '/www.xxxxx.com' ) > -1 ) { aTag[i].href = aTag[i].href.replace( '/www.xxxxx.com', '/www.xxxxx.jp' ); } if( aTag[i].href.indexOf( '/www.xxxxx.com' ) > -1 ) { aTag[i].href = aTag[i].href.replace( '/www.xxxxx.com', '/www.xxxxx.jp' ); } } とすればリンク先を取得して http://www.xxxxx.com を http://www.xxxxx.jp に置換できるというのは分かったのですが、 変動する数字も取得して、任意の文字列にというのができません。 matchやsliceなども試してみたのですが、 いかんせん初心者なため動作が理解できていません。 ご存知の方がいらっしゃいましたら、ご教示下さい。 よろしくお願いいたします。

  • ある文字があるかどうかをジャバでやりたい

    aspでjavascriptを使って、文字列の中に自分が探している文字があるかを調べる関数がありましたらどうか教えて頂けないでしょうか? 例) iti = -1; var str = "あいうえお"; var iti = str.indexOf("う"); if (iti != -1) { str = str.replace("う", "ウ"); }

  • replaceでの正規表現の記載について教えて下さい。

    replaceでの正規表現の記載について教えて下さい。 replaceを用いてt2の文字列をclpreの文字を対応するclaftの文字に変更することを考え、下記のようにくんでみましたが、エラーが出てしまい上手く行きません。 正しくはどのように記載するのでしょうか? ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー var t2 = "KJANN B CVA"; clpre = new Array("A" , "B" , " ", " "); claft = new Array("@" , "*" , "s" , "S"); for (i=0; clpre[i]; i++){  t2 = t2.replace(/clpre[i]/g, claft[i]); } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

  • Javascriptで特殊文字を置換する方法

    表題の件で分からず教えてください。 PerlでHTMLとJavascript(HTML埋め込み)を作成しています。 Javascript(On Click)で、文字列を置換させたいのですが、うまくできません。 (最終的にやりたいことはTextAreaに埋め込んだタグ付き文章を「プレビューする」ようなイメージです) ■置換前の文字列 $body$ ■置換後の文字列 任意の文字列(タグを含む) ネットで調べたところ次の方法でできるようだったので試しましたが、できませんでした。 var rgexp = new RegExp("\$body\$", "g"); str = frm.preview.value.replace(rgexp, "■■■"); 「$」とエスケープ文字をはずすとうまくいくので、多分「$」で失敗しているのだと思いますが 解決が分かりません。 ※エスケープをはずすとPerlの出力時に怒られてしまいます お分かりになる方いらっしゃいましたらお願いします。

  • preg_replaceにおけるeオプション

    文字列$strは、「aa:bb」という文字列を含み、$flagが1のときは、この部分を「aa」に。0のときは「bb」に置き換えるという処理で、 $str = preg_replace("/(.*):(.*)/e","($flag) ? $1 : $2", $str); とするも、うまくできません。 http://www.jp.u4ia.net/~tkyng/php/php_manual_i18n/function.preg-replace.html こちらのサイトの一番下にe修飾の使い方がのっているのですが、これを真似てもうまくいきません。 e修飾の使い方を教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう