我有以下正则表达式来删除javascript中字符串前后的斜杠:
("/////asdf//////").replace(/([\\\/]*)(\w+.*\w+)([\\\/]*)/, "$2")
它适用于字符串:
////米/// \\ 9 \ ///米////
米/ 9 //////
M9 //////
/ M9 /
但它不适用于此示例:
/////////米//////////
这项工作的最佳正则表达方式是什么?谢谢
答案 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
修饰符必须确保删除前导斜杠和尾部斜杠。