Javascript从字符串的开头和结尾删除特殊字符
我需要在javascript中连字符。该字符串是一个url,例如“/home/about/” 我当前的正则表达式正在工作,但输出不符合要求 如果字符串的第一个/最后一个字符是特殊字符,则应将其删除,而不是改为连字符 例如: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
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
是的,这太棒了。感谢您的回答,也感谢您解释解决方案。当我能回答的时候,我会接受的。是的,这太棒了。感谢您的回答,也感谢您解释解决方案。当我能回答的时候,我会接受的。啊,太好了。只有一种表达,甚至更好。谢谢啊,太好了。只有一种表达,甚至更好。谢谢