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

Javascript从字符串的开头和结尾删除特殊字符,javascript,regex,Javascript,Regex,我需要在javascript中连字符。该字符串是一个url,例如“/home/about/” 我当前的正则表达式正在工作,但输出不符合要求 如果字符串的第一个/最后一个字符是特殊字符,则应将其删除,而不是改为连字符 例如: var string = '/home/about/'; string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); // Returns -home-about- but I need home-abou

我需要在javascript中连字符。该字符串是一个url,例如“/home/about/”

我当前的正则表达式正在工作,但输出不符合要求

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

例如:

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

使用查找组而不是替换

在这里,您将查找一组以任何特殊字符作为前缀和后缀的字符,这些字符是唯一的/或更多的


接下来,用新字符串连接“-”,就完成了。

使用查找组,而不是替换

在这里,您将查找一组以任何特殊字符作为前缀和后缀的字符,这些字符是唯一的/或更多的

接下来用新字符串连接“-”,就完成了。

^\/means/在开头,\/$means/在结尾。使用管道将它们连接起来,以处理末端的两个移除

string = string.replace(/^\/|\/$/g, '').toLowerCase(); 
然后执行正则表达式操作:

string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 
^\/开始时表示/和结束时表示/的\/$means。使用管道将它们连接起来,以处理末端的两个移除

string = string.replace(/^\/|\/$/g, '').toLowerCase(); 
然后执行正则表达式操作:

string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 

您可以简单地执行以下操作:

var s="/home/about/";
s.match(/[^\/]+/g).join('-'); // home-about

您可以简单地执行以下操作:

var s="/home/about/";
s.match(/[^\/]+/g).join('-'); // home-about

是的,这太棒了。感谢您的回答,也感谢您解释解决方案。当我能回答的时候,我会接受的。是的,这太棒了。感谢您的回答,也感谢您解释解决方案。当我能回答的时候,我会接受的。啊,太好了。只有一种表达,甚至更好。谢谢啊,太好了。只有一种表达,甚至更好。谢谢