gpt4 book ai didi

javascript - 正则表达式 JavaScript : authorize slash

转载 作者:行者123 更新时间:2023-12-03 07:44:22 25 4
gpt4 key购买 nike

我有一个正则表达式来格式化 HTML 输入中的 URL。我想删除所有非字母或数字的字符。

所以我写了这个正则表达式:

return url.toLowerCase()
.replace(/^\s+|\s+$/g, "")
.replace(/[_|\s]+/g, "-")
.replace(/[^a-z\u0400-\u04FF0-9-]+/g, "")
.replace(/[-]+/g, "-")
.replace(/^-+|-+$/g, "")
.replace(/[-]+/g, "-");

但现在,我想接受斜杠字符 (/)。我如何通过替换来接受这个 Angular 色?我对 RegExp 不太确定。

我想要这个字符串:

Category / Test name = dog

成为:

category/test-name-dog

最佳答案

如果你想遵循你的逻辑,你需要“保护”否定字符类中的 / 符号(这里 - /[^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, "/");

关于javascript - 正则表达式 JavaScript : authorize slash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35269488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com