Как удалить все символы в заданной строке в Javascript?
В настоящее время я использую следующий код Javascript для преобразования названия продукта в URL-слог в базовом шаблоне моего проекта django.
document.getElementById("title").onkeyup = function () {
document.getElementById("url_slug").value = document
.getElementById("title")
.value.toLowerCase()
.replaceAll(" ", "-")
.replaceAll("'", "")
};
Это использование последовательных методов replaceAll() для замены пробела на тире и удаления апострофов, но я хотел бы предотвратить все другие символы (например, +=()[]$%@#... и т.д.), а также.
Наверняка есть лучший способ? Заранее спасибо за любые предложения!
Вы можете удалить все символы с помощью regex выражения /[^A-Za-z0-9]/g
document.getElementById("title").onkeyup = function () {
document.getElementById("url_slug").value = document
.getElementById("title")
.value.toLowerCase().replace(/[^A-Za-z0-9]/g,'')
.replaceAll(" ", "-")
.replaceAll("'", "")
};
Что-то вроде этого?
let stringToReplace = '12+3%42()S$%\|#s'
let desired = stringToReplace.replace(/[^\w\s]/gi, '')
Символ (^) является отрицанием всего, что входит в набор [...],
gi означает: глобальный и нечувствительный к регистру
Плюс мы поместили safelist туда:
В нашем случае цифры, символы, подчеркивания (\w) пробелы (\s).
Итак, все, что находится вне нашего белого списка, заменяется на ''