• 締切済み

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