Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符、符号或数字之前或之后的空白;但是,不是在两者之间_Javascript_Jquery_Regex_String - Fatal编程技术网

Javascript 字符、符号或数字之前或之后的空白;但是,不是在两者之间

Javascript 字符、符号或数字之前或之后的空白;但是,不是在两者之间,javascript,jquery,regex,string,Javascript,Jquery,Regex,String,我正在尝试编写一个regexp,它可以在任何字符字母、符号或数字之前或之后选择空格,但不能在由字符组成的单词之间选择空格 例如,在“abc”中,前面的空格将匹配;但是,在“单词”中,不会选择中间的空格 所以在“hello world to everyone”中,只会选择前导空格和尾随空格 好处:如果有一种方法可以在第二个regexp中分别选择中间的空白,这将非常有用 我要做的是,在javascript中,尽量减少句子中的空白,这样前导和尾随的空白就消失了,单词之间的空白就缩小到1个空格 你想把多

我正在尝试编写一个regexp,它可以在任何字符字母、符号或数字之前或之后选择空格,但不能在由字符组成的单词之间选择空格

例如,在“abc”中,前面的空格将匹配;但是,在“单词”中,不会选择中间的空格

所以在“hello world to everyone”中,只会选择前导空格和尾随空格

好处:如果有一种方法可以在第二个regexp中分别选择中间的空白,这将非常有用

我要做的是,在javascript中,尽量减少句子中的空白,这样前导和尾随的空白就消失了,单词之间的空白就缩小到1个空格


你想把多个空间变成一个空间吗?只要做:

var text="hello world  to    everyone";
text=text.trim().replace(/\s+/g," ");

document.write(text); // It will print 'hello world everyone'

你想把多个空间变成一个空间吗?只要做:

var text="hello world  to    everyone";
text=text.trim().replace(/\s+/g," ");

document.write(text); // It will print 'hello world everyone'
仅通过正则表达式和正则表达式

您可以通过regex实现这一点,而无需使用任何js内置函数,如trim

说明:

^\s+匹配前导的一个或多个空格。 |或 \s+$匹配尾随空格。 |或 \s*\s从剩余字符串中,此正则表达式将匹配零个或多个空格,并捕获最后一个空格。因此,捕获的组,即组索引1是单个空间。 将所有匹配的空格替换为组索引1中的空格将获得所需的输出。 仅通过正则表达式和正则表达式

您可以通过regex实现这一点,而无需使用任何js内置函数,如trim

说明:

^\s+匹配前导的一个或多个空格。 |或 \s+$匹配尾随空格。 |或 \s*\s从剩余字符串中,此正则表达式将匹配零个或多个空格,并捕获最后一个空格。因此,捕获的组,即组索引1是单个空间。 将所有匹配的空格替换为组索引1中的空格将获得所需的输出。
但是《向所有人问好世界》没有前导/尾随空格?我添加了一些引号以防止空格折叠。Stringtrim应该已经这样做了,但是《向所有人问好世界》没有前导/尾随空格?我添加了一些引号以防止空格折叠。Stringtrim应该已经这样做了它会打印出来HelloWorldEveryone替换值应该是单个空格,我为您修复。它打印HelloWorldEveryone替换值应该是单个空格,我为您修复。感谢您解决了我的问题,而不仅仅是给了我最简单的解决方案。我不知道有修剪的方法。我会进一步研究的。谢谢你解决了我的问题,而不仅仅是给了我最简单的解决方案。我不知道有修剪的方法。我将进一步研究这个问题。或者^\s+$\s+$\s+\s我发现另一个答案更具可读性,特别是当我想到可维护性时。或者^\s+$\s+$\s+\s我发现另一个答案更具可读性,特别是当我想到可维护性时。
> var s = '    hello    world   to    everyone   '
> s.replace(/^\s+|\s+$|\s*(\s)/g, "$1")
'hello world to everyone'