javascript中的正则表达式,用于删除(后退)前后的斜杠

时间:2017-09-05 12:03:45

标签: javascript regex

我有以下正则表达式来删除javascript中字符串前后的斜杠:

("/////asdf//////").replace(/([\\\/]*)(\w+.*\w+)([\\\/]*)/, "$2")

它适用于字符串:

  

////米/// \\ 9 \ ///米////

     

米/ 9 //////

     

M9 //////

     

/ M9 /

但它不适用于此示例:

  

/////////米//////////

这项工作的最佳正则表达方式是什么?谢谢

4 个答案:

答案 0 :(得分:3)

你可以使用

let str = "/////asdf//////";

str = str.replace(/^\/*|\/*$/g, '');

console.log(str);

答案 1 :(得分:2)



var s = "/////m//////////////////";

console.log(s.replace(/(^\/+)|(\/+$)/g, ''));




答案 2 :(得分:2)

你可以用这个:

var rgx = /(\/*)(.*[^/])(\/*)/;

console.log(("/////asdf//////").replace(rgx, "$2"));
console.log(("////m///\\9\///m////").replace(rgx, "$2"));
console.log(("m/9//////").replace(rgx, "$2"));
console.log(("m9//////").replace(rgx, "$2"));
console.log(("/m9/").replace(rgx, "$2"));
console.log(("/////////m//////////").replace(rgx, "$2"));

答案 3 :(得分:1)

你的正则表达式需要至少2个单词字符。使第二个可选:

/([\\\/]*)(\w+(?:.*\w+)?)([\\\/]*)/
               ^^^^^^^^^

请参阅regex demo

(?:.*\w+)?匹配除了换行符之外的任何0+字符的1或0次出现,尽可能多,然后是1个或多个字符。

如果您只需要删除字符串开头/结尾的斜杠,请使用

.replace(/^[\\\/]+|[\\\/]+$/g, "")

请参阅this regex demo

<强>详情

  • ^[\\\/]+ - 字符串开头(^),然后是1个或多个/或/和\字符
  • | - 或
  • [\\\/]+$ - 1个或多个/或/和\,然后是字符串结尾。

请注意,g修饰符必须确保删除前导斜杠和尾部斜杠。