JQuery - Regex URL-слаг в заглавную фразу? - PullRequest
2 голосов
/ 23 марта 2011

Привет, я пытаюсь выяснить, как конвертировать

this-is-my-slug

в:

Это мой слаг

в Jquery?!

Я знаю, что PHP это круто, но jQuery может и нет?

Ответы [ 3 ]

2 голосов
/ 23 марта 2011

Это должно сделать это для вас: (Это был простой предыдущий пример)

var str = "this-is-my-slug";
str = str.toLowerCase().replace(/-/,' ').replace(/\b[a-z]/g, convert);
    function convert() {
          return arguments[0].toUpperCase();
    }

Здесь это в функциональной форме - все преобразования слов и отдельных слов:

   //Converts and Formats entire string
   function Convert(test)
   {
       var formatted = test.toLowerCase().replace(/-/g,' ');
       var array = test.split(" ");
       var output = "";

       for (i=0;i<array.length;i++)
       {
              output += ConvertString(array[i]);
       }  
       return output;
    }

   //Formats individual words
   function ConvertString(string)
   {
       var str = string;
       str = str.toLowerCase().replace(/-/g,' ').replace(/\b[a-z]/g, convert);
       function convert() {
          return arguments[0].toUpperCase();
       }
       return str; 
   }

Рабочий пример - Обновлено

0 голосов
/ 04 апреля 2011

ОК, это работает на 100%:

http://jsfiddle.net/Y9WQC/1/

var string = "this-is-a-slug";

convert = string.replace(/-/g," ");

function ucwords (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Waldo Malqui Silva
    // +   bugfixed by: Onno Marsman
    // +   improved by: Robin
    // +      input by: James (http://www.james-bell.co.uk/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: ucwords('kevin van  zonneveld');
    // *     returns 1: 'Kevin Van  Zonneveld'
    // *     example 2: ucwords('HELLO WORLD');
    // *     returns 2: 'HELLO WORLD'
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
        return $1.toUpperCase();
    });
}
var result = ucwords(convert)
$("div").text(result); 

<div>my new string will output here</div>
0 голосов
/ 23 марта 2011

Сравнение jQuery с PHP не является особенно справедливым сравнением, но вместо того, чтобы вдаваться в подробности, я просто направлю вас к этому вопросу. Он выполняет противоположную операцию, но вы можете получить некоторую помощь по вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...