• 締切済み

Javascriptで正規表現を使って HTMLタグの[id="hea

Javascriptで正規表現を使って HTMLタグの[id="header-nav"]のような文字列がある場合に[id="headerNav"]というように一斉に置換するにはどういったふうに書けば良いでしょうか?

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.5

/** * タグ内のidの名前を変換 */ function 変換(t) {     var タグ内=function(a,b) {         var IDパラメータ=function(a,b){             var 引用符内 = function(a,b) {                 var 大文字化=function(a,b) {                     return b.toUpperCase();                 };                 return "\"" + b.replace(/-([a-z])/,大文字化) + "\"";             };             return b.replace(/\"(.*)\"/,引用符内);         };         return "<" + b.replace(/(\s+id\s*=\s*\".*\"\s*)/,IDパラメータ) + ">";     };     return t.replace(/<(.*?)>/g,タグ内); } //ここから使用例 var t = "<input type=\"text\" id=\"aaa-bbb\">"     + " id=\"xxx-yyy\" "     + "<input tyepe=\"text\" id=\"ppp-qqq\">"; va 結果 = 変換(t);

回答No.4

そうか~かたておちだったね。りょうほうにたいおう。 ぜんかくくうはくは、はんかくに。 <script type="application/javascript;version=1.8"> function hoge ( ary, flag )  ary.map(   flag ?    function ( a )     a.replace( /-([a-z])/g,      function ( a, b )       b.toUpperCase() ):    function ( a )     a.replace(/[A-Z]/g,      function ( a )       '-' + a.toLowerCase() )  ); alert( [hoge( [ 'aB', 'bC' ], false ), hoge( [ 'a-b', 'b-c' ], true ) ] ); </script>

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

>のような文字列 これはどういう意味でしょう? 例えば、id="~"とあれば、引用符の内部は全てと言う意味? あるいは"xxx-yyy"だと"xxxYyy"にするとかですか? 前者と後者では正規表現は違います。

aimiteNoNochi
質問者

補足

すいません、後者のほうです。

回答No.2

もひとつおまけ。 <script type="application/javascript;version=1.8"> alert(  [ 'a-b', 'b-c' ]   .map(    function (a)     a.replace( /-([a-z])/g,      function (a,b)       b.toUpperCase() ) ) ); </script>

回答No.1

var ary = [ 'a-b', 'b-c' ]; var i, I = ary.length; var func = function ( a, b ) { return b.toUpperCase( ); }; for( i = 0; i < I; i++ ) ary[i] = ary[i].replace( /-([a-z])/g, func ); alert( ary );

関連するQ&A

  • 秀丸エディタ 正規表現 指定文字範囲内の文字を置換

    秀丸エディタで改行含む複数行の文字列を置換したいのです。 たとえばHTMLファイルの ■置換前 <div id="Header"> ~~ ~~ ~~ <!-- /Header --></div> ■置換後 <div id="Header"> AAAA <!-- /Header --></div> となるようにしたいですが 「~~」の中は規則性のある記述になっておりません。 文中に半角スペースが入っていたり、行頭のインデントが揃ってなかったり タグの順番も統一されておりません。 上記は例としてあげてますが実際は100行近くあり、ファイル数も数百ファイルあります。 ひとつだけ分かってるのは <div id="Header"> と <!-- /Header --></div> の記述は存在するので、この範囲内の文字列をどうにか選択できないか教えていただけないでしょうか。 正規表現でなくても実現できるフリーツールでも構いません よろしくお願いいたします。

  • Excel : タグ付き正規表現による文字置換は可能?

    アクティブセルの文字を、正規表現を利用して文字置換をしたいと考えています。 ただ、単純な文字置換ではなく、正規表現にマッチした文字列を記憶して、 置換後の文字列として呼び出して利用します。 秀丸エディタにあるような「タグ付き正規表現」を利用したいです。 Excelでも同じようなことは可能なのでしょうか? 一例として挙げますと、次のような文字置換です。 ●「?」の後に全角スペース以外の文字がある場合には、「?」の後に全角スペースを1つ入れる。 ●「?」の後に全角スペースが複数続く場合には、「?」の後の全角スペースを1つだけにする。 つまり、★を全角スペースとすると、次のようになります。 あいう?あいう   → あいう?★あいう あいう?★★あいう → あいう?★あいう さらに、一例を挙げますと、 ●「AさんはBさんの友達です」というような文章を、「BさんはAさんの友達です」にする。  つまり、AとBに相当する部分を入れ替える。 よろしくお願いいたします。

  • 正規表現でHTMLタグの属性まで選んで抽出

    現在、掲示板をPHPで作っています。 入力された文字列の無効化と許可タグの分別に正規表現を使いたいと考えております。 そこで、現状では、まずすべての < > を特殊文字に変換し、その後に、許可タグ(属性)のタグを < > にもどそうとしています。 たとえば、fontタグならcolorとsizeを許可しようとして、次のような正規表現を作ってみましたが、うまくいきません。 /&lt;font((( )*(color=)[\"\']?.{1,7}[\"\']?)|(( )*(size=)[\"\']?.{1,2}[\"\']?))*&gt;/i 正規表現はまだ勉強し始めたところで、おかしなところだらけだと思いますが、何かヒントだけでもいただけたらと思います。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • 特定の文字列に""を追加する正規表現を教えてください。

    特定の文字列に""を追加する正規表現を教えてください。 置換前 ID=○○○○ 置換後 ID="○○○○" とするにはどうすればよいのでしょうか? 正規表現というものを最近知ったのですが、どうしたものか全然わかりません…。 よろしくお願いいたします。

  • javascriptの正規表現でhtmlからmetaタグを抽出してを削

    javascriptの正規表現でhtmlからmetaタグを抽出してを削除 javascriptの正規表現でhtmlからmetaタグを抽出してを削除したいと 考えておりますが、正規表現でmetaの取り出し方がわかりません。 どなたかご教授ください。 よろしくお願いいたします。

  • 急ぎでお願いします!正規表現の置換について

    こんにちわ。 HTMLのコードを置換エディターで一括で書き換えたいと思っています。 例えば <h2 id="01"><img src="../imgs/dish/index_tit_01.gif" alt="サンプル" width="630" height="36" /></h2> というようなコードをaltの文字以外は削除して <h2 id="01">サンプル</h2> にしたい場合、検索する文字列、置換する文字列にはどのような正規表現を適用したらよいでしょうか? また<h2 id="01">が<h2 ="id=02">,<h2 ="id=03">と複数ある場合があるので、 できたらid=数字のところは01,02,03,04などにもまとめて適用させたいと思っています。 どうかご教授よろしくお願いします!!!

  • タグを削除する正規表現について

    <("[^"]*"|'[^']*'|[^'">])*> とうい正規表現があります。HTMLのタグを削除するタグとういことですが、意味がわかりません。 "<"、">"の括弧の意味はわかります。"( )"はグループ化という意味もわかります。"|"はorという意味もわかりますし、*は一つ前の文字列が0以上というのも理解しています。[]は中の文字列のいずれかに該当するという意味もわかります。ただ、 "[^"]*" '[^']*' [^'">] の個々の意味を考えるとわかりません。 "[^"]*"は最初にダブルクオテーションが出てきて、^ or "が0個以上該当するという意味にとらえてしまいます。なにとぞご解説お願いいたします。 ちなみにhttp://www.mnet.ne.jp/~nakama/を参考にしています。

  • 正規表現でタグの一部を削除したい

    Dreamweaverの検索および置換で正規表現を使用して、サイト内で使用されている<a>タグの中の「title=""」を削除したいです。どうぞよろしくお願いします。 例としては下記のような感じです。 【修正前】 <a title="ここは文字列が入っています" href="index.html" class="link">リンク文字</a> 【修正後】 <a href="index.html" class="link">リンク文字</a> 「title=""」の「””」に入っている文字列は同じ文字もありますが、基本的にすべて違います。 また、例では<a>タグの中に「href」「class」が入っていますが、リンク先が違ったり、class名が違ったり、「id」が入っていることもあります。

    • ベストアンサー
    • CSS
  • sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が

    sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が上手く使いこなせなくて困っています。 実際のファイルには、<td class="style1" id="sequence1" >と書かれてある部分があり、これを<td>に置き換えたいのです。 それで、試しに sed -e 's/<td*>/<td>/g' ファイル名 と記述しましたが出来ませんでした。 正規表現の書き方が間違っているとは思うのですが、時間がなくお聞きすることにしました。 正しい書き方を教えて頂けますでしょうか。

  • VB2008 正規表現でHTMLタグを"大文字→小文字"に置換したい

    Visual Basic 2008使用のプログラミング初心者です。 HTMLタグを大文字から小文字に置換するアプリケーションを作成中なのですが記述が間違っているのか、文字列を置換することが出来ません。 以下ソースです。     TextBox1.Text = Regex.Replace(TextBox1.Text, _       "<([\/]?)([\w]+)", _       "$1\L$2") http://dobon.net/vb/dotnet/string/regexreplace.html http://www37.atwiki.jp/emeditor/pages/50.html#id_6996d4b6 この二つのサイトを参考にやってみたのですが 置換を実行すると <BR> → \LBR> こうなってしまいます。 小文字に置換されるようにするにはどこを直せばよいのでしょうか。 教えてください、よろしくお願いします。

専門家に質問してみよう