所以我正在为JQuery编写一个小插件来删除字符串中的空格。 see here
(function($) {
$.stripSpaces = function(str) {
var reg = new RegExp("[ ]+","g");
return str.replace(reg,"");
}
})(jQuery);
我的正则表达式目前是[ ]+
来收集所有空格。
这有效..然而它并没有留下我口中的好味道..
我也试过[\s]+
和[\W]+
,但都没有工作..
必须有更好(更简洁)的方式来搜索空格。
答案 0 :(得分:176)
我建议您使用文字符号,并使用\s
字符类:
//..
return str.replace(/\s/g, '');
//..
使用字符类\s
和' '
之间存在差异,这将匹配许多更多的空白字符,例如'\t\r\n'
等..,寻找{ {1}}将仅替换ASCII 32空格。
当你想构建动态模式时,' '
构造函数很有用,在这种情况下你不需要它。
此外,如你所说,RegExp
没有使用"[\s]+"
构造函数,那是因为你传递了一个字符串,你应该“双重逃避”反斜杠,否则他们会被解释为字符串内的字符转义(例如:RegExp
(未知转义))。
答案 1 :(得分:13)
"foo is bar".replace(/ /g, '')
答案 2 :(得分:1)
str.replace(/\s/g,'')
适合我。
jQuery.trim
对IE有以下攻击,虽然我不确定它会影响哪个版本:
// Check if a string has a non-whitespace character in it
rnotwhite = /\S/
// IE doesn't match non-breaking spaces with \s
if ( rnotwhite.test( "\xA0" ) ) {
trimLeft = /^[\s\xA0]+/;
trimRight = /[\s\xA0]+$/;
}
答案 3 :(得分:0)
这同样有效:http://jsfiddle.net/maniator/ge59E/3/
var reg = new RegExp(" ","g"); //<< just look for a space.
答案 4 :(得分:0)
删除字符串中的所有空格
// Remove only spaces
`
Text with spaces 1 1 1 1
and some
breaklines
`.replace(/ /g,'');
"
Textwithspaces1111
andsome
breaklines
"
// Remove spaces and breaklines
`
Text with spaces 1 1 1 1
and some
breaklines
`.replace(/\s/g,'');
"Textwithspaces1111andsomebreaklines"
答案 5 :(得分:0)
在一些应用程序中使用它来清理用户生成的内容,以消除多余的空格/返回等,但保留空格的含义。
import os
os.system("ffmpeg -y -re -acodec pcm_s16le -rtsp_transport tcp -i
rtsp://192.168.1.200:554/11 -vcodec copy -af asetrate=22050 -acodec aac -b:a 96k test.mp4")