我试图编写一个正则表达式,在任何字符(字母,符号或数字)之前或之后选择空格,但不能在字符组成的单词之间选择空格。
例如,在' abc'
中,之前的空格会匹配;但是,在'words words words'
中,不会选择中间的空格。
因此在' hello world to everyone '
中,只会选择前导和尾随空格。
奖励:如果有单独的方法,在第二个正则表达式中,选择中间的空格,这将有助于。
我试图做的是,在javascript中,最小化句子中的空格,以便前导和尾随空格消失,并且中间的空白字缩小到1个空格。
答案 0 :(得分:3)
<强> Reference Link 强>
var string = " hello world to everyone. ";
string = string.trim().replace(/\s+/g, " ");
alert(string);
<强> JS Fiddle 强>
答案 1 :(得分:2)
你是否想让多空间成为一个空间?只是做:
var text="hello world to everyone";
text=text.trim().replace(/\s+/g," ");
document.write(text); // It will print 'hello world everyone'
答案 2 :(得分:0)
仅通过正则表达式和正则表达式
您可以通过正则表达式执行此操作,而无需使用任何js内置函数,如trim()
> var s = ' hello world to everyone '
> s.replace(/^\s+|\s+$|\s*(\s)/g, "$1")
'hello world to everyone'
<强>解释强>
^\s+
匹配前导的一个或多个空格。|
或\s+$
匹配尾随空格。|
或\s*(\s)
从剩下的字符串中,此正则表达式将匹配零个或多个空格并捕获最后一个空格。所以捕获的组即组索引1是一个单独的空间。