JavaScript删除字符串开头和结尾的特殊字符

3

我需要在javascript中对字符串进行连字符处理。该字符串是一个URL(例如 '/home/about/')。

我的当前正则表达式虽然能够工作,但输出结果并不如预期。

如果字符串的第一个/最后一个字符是特殊字符,则应将其删除,而不是转换为连字符。

示例:

    var string = '/home/about/';
    string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 
    // Returns -home-about- but I need home-about
3个回答

8

^\/的意思是以/开头,\/$的意思是以/结尾。使用竖杠将它们组合在一起以处理从结尾删除两者。

string = string.replace(/^\/|\/$/g, '').toLowerCase(); 

然后进行正则表达式操作:
string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 

是的,这太棒了。谢谢你的答案,还有感谢你解释解决方案。我会在可以的时候接受作为答案。 - CharliePrynn

6
您可以简单地这样做:
var s="/home/about/";
s.match(/[^\/]+/g).join('-'); // home-about

啊,太好了。只有一个表达式,更好。谢谢! - CharliePrynn
如何仅删除末尾的特殊字符? - undefined

0

不要使用替换,而是使用查找组。

您将寻找以任何特殊字符(只有/或更多?)为前缀和后缀的任意字符组。

然后将“-”与该新字符串连接起来,完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接