我需要在javascript中连字符串。字符串是一个网址(例如'/ home / about /').
我当前的正则表达式正在运行,但输出并不理想。
如果字符串的第一个/最后一个字符是特殊字符,则应将其删除,而不是更改为连字符。
示例:
var string = '/home/about/';
string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();
// Returns -home-about- but I need home-about
答案 0 :(得分:7)
^\/
在开始时表示/
,在结尾表示\/$
表示/
。用管道连接它们以处理从末端移除的两个。
string = string.replace(/^\/|\/$/g, '').toLowerCase();
然后进行正则表达式操作:
string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();
答案 1 :(得分:4)
你可以这样做:
var s="/home/about/";
s.match(/[^\/]+/g).join('-'); // home-about
答案 2 :(得分:0)
而不是替换使用查找组。
你会在哪里寻找一组前缀和后缀任何特殊字符的任何字符(仅限/或更多?)。
接下来连接' - '用那个新的字符串,你就完成了。