jQuery从字符串中删除特殊字符等

Roe*_*oel 58 javascript regex jquery replace

我有一个像这样的字符串:

var str = "I'm a very^ we!rd* Str!ng.";
Run Code Online (Sandbox Code Playgroud)

我想要做的是从上面的字符串中删除所有特殊字符并替换空格,以防它们被键入,下划线,带有 - 字符.

在"转换"之后,上面的字符串看起来像这样:

var str = 'im-a-very-werd-strng';
Run Code Online (Sandbox Code Playgroud)

Jas*_*per 118

replace(/[^a-z0-9\s]/gi, '')将字符串过滤为只是字母数字值,replace(/[_\s]/g, '-')并用连字符替换下划线和空格:

str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')
Run Code Online (Sandbox Code Playgroud)

正则表达式的来源:Javascript的RegEx只允许使用字母数字

这是一个演示:http://jsfiddle.net/vNfrk/

  • *来自[Daniel Przybylowski]的评论(http://stackoverflow.com/users/3941987/daniel-przybylowski):*似乎第一个正则表达式删除了下划线.所以第二个可能是:replace(/\s {1,}/g,' - ')量词的原因是用' - '替换一个或多个空格.为什么?想象一下像"某事和某事"这样的字符串. (2认同)

Ili*_*a G 25

假设"特殊"是指非单词字符,那么这很容易.

str = str.replace(/[_\W]+/g, "-")
Run Code Online (Sandbox Code Playgroud)


Gra*_*hao 13

str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')
Run Code Online (Sandbox Code Playgroud)


Paw*_*sht 6

从字符串句子中删除数字、下划线、空格和特殊字符。

str.replace(/[0-9`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');
Run Code Online (Sandbox Code Playgroud)

演示


Ami*_*rma 5

这将删除所有特殊字符

 str.replace(/[_\W]+/g, "");
Run Code Online (Sandbox Code Playgroud)

这真的很有帮助并解决了我的问题。请运行以下代码并确保其有效

 str.replace(/[_\W]+/g, "");
Run Code Online (Sandbox Code Playgroud)