jquery – 使用连字符替换字符串中所有特殊字符和空格的正则表达式

我有一个字符串,我需要替换所有特殊字符“〜!@#$%^& *()_ =`{} [] |:;’<>,./?”和连字符的空格.一行中的多个特殊字符应该生成一个连字符.
var mystring="Need !@#$%^\" to /replace  this*(){}{}|\><? with_new string ";
// desired output: "Need-to-replace-this-with-new-string"

目前,我正在使用这一系列的replace()调用

return mystring.replace(/[^a-z0-9\s]/gi,'').replace(/[_\s]/g,'-').replace(/\//g,"-");

但它正在输出

Need----------to/replace-this--------with-new-string;

除了正斜杠之外,它为字符串中的每个特殊字符添加连字符.

解决方法

我建议:
var inputString = "~!@#$%^&*()_+=`{}[]|\:;'<>,./?Some actual text to keep,maybe...",outputString = inputString.replace(/([~!@#$%^&*()_+=`{}\[\]\|\\:;'<>,.\/? ])+/g,'-').replace(/^(-)+|(-)+$/g,'');
console.log(outputString);

JS Fiddle demo.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...