Відповіді:
Просто використовуйте String replace
та toLowerCase
методи, наприклад:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"
Помітьте g
прапор на значці RegExp
, він зробить заміну глобально в рядку, якщо він не використовується, буде замінено лише перше виникнення, а також, що RegExp
буде відповідати одному або більше символів пробілу.
replace(/\s+/g, ..
і не replace('/\s+/f', ..
(без апостроф)
String.prototype.trim
метод:str.trim().replace(/\s+/g, '-').toLowerCase()
Вище відповідь можна вважати трохи заплутаною. Методи рядків не змінюють оригінальний об'єкт. Вони повертають новий об’єкт. Це повинно бути:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str
Ви також можете використовувати split
та join
:
"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
@ Відповідь CMS просто чудова, але я хочу зазначити, що ви можете використовувати цей пакет: https://github.com/sindresorhus/slugify , який робить це для вас і охоплює багато кращих справ (тобто німецькі умлати, в'єтнамські, арабські , Російська, румунська, турецька тощо).
var str = "Tatwerat Development Team";
str = str.replace(/\s+/g, '-');
console.log(str);
console.log(str.toLowerCase())
str.replace(/\W+/g, '-').toLowerCase();