2012-01-24 10 views

答えて

3

あなたはちょうどあなたが

str = str.replace(/[A-Z]/g, function(s){ return "-" + s; }); 

これは

function string_to_slug(str) { 
    str = str.replace(/^\s+|\s+$/g, ''); // trim 
    str = str.replace(/[A-Z]/g, function(s){ return "-" + s; }); // camel case handling 
    str = str.toLowerCase(); 

    // remove accents, swap ñ for n, etc 
    var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;", 
     to = "aaaaeeeeiiiioooouuuunc------"; 
    for (var i=0, l=from.length ; i<l ; i++) { 
    str = str.replace(from[i], to[i]); 
    } 

    str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars 
    .replace(/\s+/g, '-') // collapse whitespace and replace by - 
    .replace(/-+/g, '-'); // collapse dashes 

    return str; 
} 
なるように残りのコードをもたらす投稿をどのように1行のコードを追加する必要があります

編集::私も無駄な新しいReを削除しましたgExpロジックも。 編集::最初のものだけでなく、すべての大文字を見つけるために 'g'を追加しました。

+0

パーフェクト!ありがとうございました!私は完全な例をここに追加しましたhttp://jsfiddle.net/wraithmonster/AAwTT/ –

0

これはあなたを助けます!

 var strings = 'toDo'; 
var i=0; 
var ch=''; 

while (i < strings.length){ 
    character = strings.charAt(i); 
     if (character == character.toUpperCase()) { 
      //alert ('upper case true' + character); 
     character = "-" + character.toLowerCase(); 
     } 
     i++; 
     ch += character; 
    } 
//to-do 
     alert(ch); 
+0

これは見た目がよくありません。 – AlanFoster

0

使用してみてください:

str=str.toLowerCase() before or after the slugification. 
+0

これはハイフンを追加しません。 – TimWolla

関連する問題