プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (5件)

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 );
    • good
    • 0

もひとつおまけ。



<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>
    • good
    • 0

>のような文字列


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

この回答への補足

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

補足日時:2010/05/20 09:01
    • good
    • 0

そうか~かたておちだったね。

りょうほうにたいおう。
ぜんかくくうはくは、はんかくに。

<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>
    • good
    • 0

/**


* タグ内の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);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!