簡體   English   中英

RegExp JavaScript:授權斜線

[英]RegExp javascript : authorize slash

我有一個RegExp來格式化HTML輸入中的URL。 我要刪除不是字母或數字的所有字符。

所以我寫了這個regexp:

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

但是現在,我想接受斜杠字符(/)。 我如何通過替換接受此字符? 我對RegExp不太確定。

我想要這個字符串:

類別/測試名稱=狗

成為 :

類別/測試名稱狗

如果要遵循邏輯,則需要“保護”否定字符類中的/符號(此處- /[^az\\/\Ѐ-\ӿ0-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(/[^az\Ѐ-\ӿ0-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(/[^az\\/\Ѐ-\ӿ0-9-]+/g, "") .replace(/^-+|-+$/g, "") .replace(/-+/g, "-") .replace(/-*\\/-*/g, "/"); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM