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