【发布时间】:2020-12-22 22:38:08
【问题描述】:
我正在尝试从我的标题中删除特殊字符并将其转换为 url 模式。我可以通过使用 .replace 方法来完成此操作,例如:title.replace(/[^A-Za-z0-9\-/s]/g, " ");
当标题中有括号时,我遇到了问题。我可以删除括号,但它会在最后留下一个空白空间,然后我用 - 填充空白空间以创建 URL 架构,这给了我一些问题。
如何调整下面的代码以删除 (Cat and Dog) 周围的括号,以免在后面留下空格?
这是我当前代码当前发生的情况:"Pet Supplies Cat and Dog "
let title = "Pet Supplies (Cat and Dog)"
let cleanTitle = ""
cleanTitle = title.replace(/[^A-Za-z0-9\-/s]/g, " ");
cleanTitle = cleanTitle.toLowerCase();
cleanTitle = cleanTitle.replace(new RegExp(" ", "g"), "-");
cleanTitle = cleanTitle.replace("-and", "");
cleanTitle = cleanTitle.replace(new RegExp("---", "g"), "--");
cleanTitle = cleanTitle.replace(new RegExp("--", "g"), "-");
console.log(cleanTitle)
我的预期结果是:pet-supplies-cat-dog
【问题讨论】:
-
如果我的措辞不正确,您好抱歉。我对
url-schema的意思是,我将在我的页面上有一个文章标题,我将重新定向,因此我试图将任何标题转换为友好的 URL,例如Pet Supplies (Cat and Dog)到website.com/pet-supplies-cat-dog -
我认为您想要的称为
slug。有很多示例如何使用 JavaScript 生成这些示例,例如stackoverflow.com/questions/1053902/…. -
您可以只使用
trim字符串,cleanTitle.toLowerCase();=>cleanTitle.trim().toLowerCase();。另外,您的意思是要将空格与/s匹配吗?必须是\s。
标签: javascript regex