如果你想遵循你的逻辑,你需要“保护”
/
否定字符类中的符号(此处-
/[^a-z\/\u0400-\u04FF0-9-]+/g
-以便您不会过早将其移除),然后将其全部替换
-/-
只有
/
作为最后一步。请注意,您正在复制
.replace(/[-]+/g, "-")
步骤,您可以删除第一个。
return url.toLowerCase()
.replace(/^\s+|\s+$/g, "")
.replace(/[_\s]+/g, "-")
.replace(/[^a-z\/\u0400-\u04FF0-9-]+/g, "")
.replace(/^-+|-+$/g, "")
.replace(/-+/g, "-")
.replace(/-*\/-*/g, "/");
url = "Category / Test name = dog";
document.body.innerHTML = "Old: " + url.toLowerCase()
.replace(/^\s+|\s+$/g, "")
.replace(/[_|\s]+/g, "-")
.replace(/[^a-z\u0400-\u04FF0-9-]+/g, "")
.replace(/[-]+/g, "-")
.replace(/^-+|-+$/g, "")
.replace(/[-]+/g, "-");
// and now
document.body.innerHTML += "<br/>New: " + url.toLowerCase()
.replace(/^\s+|\s+$/g, "")
.replace(/[_\s]+/g, "-")
.replace(/[^a-z\/\u0400-\u04FF0-9-]+/g, "")
.replace(/^-+|-+$/g, "")
.replace(/-+/g, "-")
.replace(/-*\/-*/g, "/");