Відповіді:
Просто використовуйте 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();