我有一个这样的字符串:jQuery的从字符串删除特殊字符,更
var str = "I'm a very^ we!rd* Str!ng.";
我希望做的是从上面的字符串中删除所有特殊字符和替代空间,以防他们被输入,用 - 字符强调。
上面的字符串应该是这样的“转型”后:
var str = 'im-a-very-werd-strng';
我有一个这样的字符串:jQuery的从字符串删除特殊字符,更
var str = "I'm a very^ we!rd* Str!ng.";
我希望做的是从上面的字符串中删除所有特殊字符和替代空间,以防他们被输入,用 - 字符强调。
上面的字符串应该是这样的“转型”后:
var str = 'im-a-very-werd-strng';
replace(/[^a-z0-9\s]/gi, '')
将过滤字符串到只有字母数字值和replace(/[_\s]/g, '-')
将连字符代替下划线和空格:
str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')
*来自[Daniel Przybylowski]的评论(http://stackoverflow.com/users/3941987/daniel-przybylowski):*似乎下划线被第一个正则表达式去掉了。所以第二个可能是:replace(/ \ s {1,}/g,' - ')量词的原因是用' - '替换一个或多个空格。为什么?想象一下像“某物”这样的字符串。 –
非常感谢! – Yass
什么是? –
str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')
既然不能在Jasper的回答进行评论,我想他的解决方案指出一个小bug:
str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
的问题是,第一个代码删除所有的连字符,然后试图取代它们:) 您应该反转替换调用,并添加连字符第二个替换正则表达式。像这样:
str.replace(/[_\s]/g, '-').replace(/[^a-z0-9-\s]/gi, '');
从字符串句子中删除数字,下划线,空格和特殊字符。
str.replace(/[0-9`[email protected]#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');
首先,你可能会使用双引号的字符串,因为里面有一个单引号。 –
你是对的,但它只是一个例子。对不起。 – Roel
为什么这被标记为jQuery?文本处理与jQuery无关。 – gonchuki