首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegExp javascript :授权斜杠

RegExp javascript :授权斜杠
EN

Stack Overflow用户
提问于 2016-02-08 12:16:11
回答 1查看 85关注 0票数 0

我有一个RegExp来格式化一个输入。我想删除所有不是字母或数字的字符。

所以我写了这个regexp:

代码语言:javascript
复制
return url.toLowerCase()
            .replace(/^\s+|\s+$/g, "") 
            .replace(/[_|\s]+/g, "-") 
            .replace(/[^a-z\u0400-\u04FF0-9-]+/g, "") 
            .replace(/[-]+/g, "-") 
            .replace(/^-+|-+$/g, "")
            .replace(/[-]+/g, "-");

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

我要这条绳子:

类别/测试名称=狗

成为:

类别/测试-名称-狗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-08 13:37:17

如果您想遵循您的逻辑,您需要在否定字符类中“保护”/符号(这里是- /[^a-z\/\u0400-\u04FF0-9-]+/g -以便您不会过早地删除它),然后将所有-/-替换为/作为最后一步。注意,您正在复制.replace(/[-]+/g, "-")步骤,可以删除第一个步骤。

代码语言:javascript
复制
return url.toLowerCase()
            .replace(/^\s+|\s+$/g, "") 
            .replace(/[_\s]+/g, "-") 
            .replace(/[^a-z\/\u0400-\u04FF0-9-]+/g, "") 
            .replace(/^-+|-+$/g, "")
            .replace(/-+/g, "-")
            .replace(/-*\/-*/g, "/");

代码语言:javascript
复制
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, "/");

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35269488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档