如何删除 Javascript 中给定字符串中的所有符号?
How to remove all symbols within a given string in Javascript?
目前我正在使用以下 Javascript 代码在我的 django 项目的基本模板中将产品标题转换为 URL-slug。
document.getElementById("title").onkeyup = function () {
document.getElementById("url_slug").value = document
.getElementById("title")
.value.toLowerCase()
.replaceAll(" ", "-")
.replaceAll("'", "")
};
这是使用连续的 replaceAll() 方法将 space 替换为破折号,然后删除撇号,但我想阻止所有其他符号(例如 +=()[]$%@#... 等) 还有。
一定有更好的方法吧?
在此先感谢您的任何建议!
您可以使用正则表达式删除所有字符 /[^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代表:全局和case-insensitive
此外,我们在其中放置了一个 安全列表:
在我们的例子中是数字、字符、下划线 (\w) 空格 (\s)。
所以我们的白名单之外的任何内容都会被替换为''
目前我正在使用以下 Javascript 代码在我的 django 项目的基本模板中将产品标题转换为 URL-slug。
document.getElementById("title").onkeyup = function () {
document.getElementById("url_slug").value = document
.getElementById("title")
.value.toLowerCase()
.replaceAll(" ", "-")
.replaceAll("'", "")
};
这是使用连续的 replaceAll() 方法将 space 替换为破折号,然后删除撇号,但我想阻止所有其他符号(例如 +=()[]$%@#... 等) 还有。
一定有更好的方法吧? 在此先感谢您的任何建议!
您可以使用正则表达式删除所有字符 /[^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代表:全局和case-insensitive
此外,我们在其中放置了一个 安全列表:
在我们的例子中是数字、字符、下划线 (\w) 空格 (\s)。
所以我们的白名单之外的任何内容都会被替换为''