• ベストアンサー

前後の文字で判断して文字を置き換えを行いたいです。

javascriptで前後の文字を条件に文字を置き換えるものを作成したいです。 文字の置き換えは正規表現のreplaceでいけることはわかったのですが、 前後の文字で判断する方法が思いつかない状況です。 どなたか知恵をお貸しいただけないでしょうか よろしくお願い致します。 例 条件:もし前後文字が数字なら五を5に変換 入力:1234五6789 出力:123456789 この場合は漢数字を数字に戻し下記の場合はそのままにしたいです。 例2 条件:もし前後文字が数字なら五を5に変換 入力:一二三四五六七八九 出力:一二三四五六七八九

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

  • ベストアンサー
回答No.1

>前後の文字で判断する そういうときこそ「正規表現のreplace」だと思うのですが… alert("1234五6789".replace(/(\d)五/,"$15")); alert("1234五67891234五67891234五6789".replace(/(\d)五/g,"$15"));

105atu
質問者

お礼

回答ありがとうございます! 参考になりました。

関連するQ&A

  • 文字列の置き換え

    はじめまして。正規表現とPHPで下記のような置き換えをしたいのですが、 どうしたら良いのでしょうか。 <a href="http://www.homepage.com/index.php?no=***">***</a> ↓置き換え <a href="javascript:Open('http://www.homepage.com/index.php?no=***')">***</a> ※***、***は毎回違うものが入りますが、その他の部分は全く同じです。 ※***は、半角英数字・「-」で構成されています。 文字数は色々です。 ※***は、かな・漢字などさまざまで、文字数も決まっていません。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 文字列全体に対する置き換え [正規表現]

    正規表現での文字列全体に対する、マッチ箇所 への置き換えについて、アドバイスをもらえないでしょうか。 parlでいうg修飾子はphpには無く、 例えば、[preg_match]は[preg_match_all]という関数で対応出来ますが、 置き換えを行う[preg_replace]には[preg_replace_all]がありません。 それに類する関数も無いように思います。 これに関して、PHPではどのように対応すれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • Excel2007で正規表現置き換え

    Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。 Office2003系列のExcelではそういうアドインがあったようです。 (使ったことはないので、どのバージョンまで使えるとかは知らないですが) http://srcedit.pekori.jp/tool/excelre.html 上記のアドインはExcel2007でも使えるのでしょうか? また使えないのでしたら、それに変わるような2007用のアドインがあるのでしょうか? 置き換えしたいデータは以下のようなものです。 1.日付が数字8桁で”文字列として認識されて”入力されている。   例)20080430 2.それを”/”で区切って日付の形式にしたい。   例)2008/04/30 現在は以下のような方法で同じ事を行っています。 A.8桁で入っている列をすべて選択し、形式を数値に変え、コピーしメモ帳に貼り付けます。 B.メモ帳からExcelの同じ選択している列にそのまま貼り付けます。これで数値として認識されます。 C.今度は表示形式を「####"/"##"/"##」とし、数値をスラッシュで区切ります。 D.それをさらにコピーし、メモ帳に貼り付けます。スラッシュ付きの数字として張り付きます。 E.それをコピーし、同じ選択している列に貼り付けます。 F.数値形式のところにスラッシュ区切りのデータを入力したので形式を日付に変更します。 というようなことをしています。 これでもできるのですが、これ以外にも色々と正規表現を利用して置き換えしたいことが出てきた場合はそちらを利用したいので、もしあればお願いします。

  • テキストボックス内の文字の置き換え

    編物用の洋書を日本語に変換するものを作っています 文字を置き換えするときに aaを11に aaaaを2222に置き換えたいのですが Str = RichTextBox1.Text RichTextBox2.Text = str.Replace("aa", "11").Replace("aaaa", "2222") と書くと aaaaが1111に置き換えられます RichTextBox2.Text = str.Replace("aaaa", "2222").Replace("aa", "11") と書けばよいのですが、置き換える単語は、もっと沢山あって・・・・ 完全一致の単語を置き換えるという書き方は、有るのでしょうか? あれば、是非教えてください よろしくお願いいたします

  • 秀丸で置き換え

    正規表現を使って以下のような置き換えをしたいのですが、うまくいきません。よろしくお願いいたします。 置き換え前 *)open 置き換え後 *) open 単語は open だけではなく、いろいろです。それから、*は0~9までの数字です。要するに、)の後に半角スペースを入れたいのです。

  • 正規表現での置換えについて

    正規表現を使った置換えでどうやったらいいのか悩んでいます。 やり方は、カンマで区切られた数字や英字の列をその先頭だけ残して別の記号(?など)に変換するというものです。 変換例 222,1,33333 は 2??,1,3???? へ置換え 55,22aa は 5?,2??? へ置換え 6 は 6 へ置換え(つまりそのまま) このような置換えをすることは可能でしょうか。 こういう置換えはand条件が使えないと無理なのかなとも思ったりしています。 ただ正規表現にはand条件は無いようですし。(or条件はあるようですが) mb_ereg_replaceを使って明示していただけると助かります。 もちろん複数行になっても問題ありませんし、mb_ereg_replaceでは無理という場合に別の関数を使っていただいても結構です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • javascriptで質問があります!

    こんにちは。 javascriptで、入力された文字列から指定された文字を含む行を抜き出すプログラムを作りたいです。 例: 入力された文字列 : abcd             efghi  指定した文字    :b 出力         :abcd こんな感じのプログラムを作りたいです。正規表現を使えばいけるのかなと思うのですがどなたか知恵をお貸しいただけないでしょうか? よろしくお願いいたします。

  • javascriptのmatchで質問です。

    javascriptで入力された文字列の中から、指定した文字の前後の文字がアルファベッド、数字、ひらがな、空白かを判断するものを作成しています。 matchを使って作成を行っているのですが、なかなかうまくいっていないのが現状です。 どなたか知恵をお貸しいただけないでしょうか。 よろしくお願いします。 例 指定文字:1 入力:ABCD1EF 出力:アルファベッドです。 指定文字:う 入力:あいうえお 出力:ひらがなです。 指定文字:あ 入力:あいうえお 出力:前が空白で後ろがひらがなです。 という形にしたいです。

  • 初心者用正規文字一覧があるサイトでオススメはどこでしょうか?

     ワードで大学(文系)の論説文を書く程度なのですが、正規文字を使って次を置き換える必要が出てきました。そこで、初心者向けに正規文字の一覧が載ってるサイトを知りたいです。  例を出すと、 []内と《》内の文字を消したいので、《.》置き換え→《..》で置き換え→以下続く という風に.をひたすら打って置き換えたのですが、この場合効率の良い正規表現は何だろうか? という問いを満たす程度のレベルのもので結構です。できるだけ見やすい(調べやすい)方が良いのですが、オススメのサイトがあったらよろしくお願いします。

  • エクセル関数 文字の置き換えを教えてください

    2件教えてください。 (1)数字-AA を 数字R-AA に置き換えたいのですが。   数字には、0~9のどれがくるか決まっていません。どの数字がきても 数字R-AA にしたい。  (2)数字L数字 を 数字L_数字に置き換えたいのですが。   数字には、0~9のどれがくるか決まっていません。 文字が決まっている場合は、関数 Substitute を使って置き換えられたのですが、上記の数字のように、範囲のある文字の置き換えが思いつきません。

専門家に質問してみよう