JavaScript 如何去除空格

大家平时整理文字内容时,会不会遇到这种情况:复制网页上的文字,结尾总跟着一串空格,或者用户输入的姓名不小心多打了空格,提交时出了错?处理这些场景时,JavaScript的空格去除方法就派上用场了。今天就用几个生活化的例子,把这些方法讲明白。

场景1:只去字符串两端的空格

生活里最常见的就是文字前后多了空格,比如你在表单里填收货地址,不小心在“XX小区”前面打了空格,提交后系统识别成两个地址。这种情况只需要去掉两头的空格,中间的空格要保留,不然把“北京 朝阳”改成“北京朝阳”就不对了。

JavaScript 如何去除空格

实现这种需求最简单,JavaScript有现成的方法:trim()。举个例子,你把复制来的文字存到变量里,const address = ' 朝阳区建国路 ';,运行address.trim()后,结果就变成了“朝阳区建国路”,中间的空格一点没动,刚好满足需求。而且这个方法兼容性很好,所有常用浏览器都支持,是处理两端空格的首选。

场景2:去掉所有空格(包括中间)

有时候我们需要把整段文字的空格全删掉,比如用户输入的手机号不小心多打了空格,像'138 1234 5678',这时候就需要把所有空格都去掉,拼成完整的数字。

这时候可以用replace()方法搭配正则表达式。正则里的/\s/g专门用来匹配所有空格(不管是普通空格、制表符还是换行空格),g的意思是“全局替换”,也就是把字符串里所有匹配的内容都换掉。比如把手机号变量写成const phone = '138 1234 5678';,运行phone.replace(/\s/g, ''),结果就是'13812345678',正好是我们要的格式。

这里要注意,有些新手会忘了加g,只写/s/的话,就只会把第一个空格换掉,比如'138 1234 5678'.replace(/\s/, '')的结果会是'1381234 5678',少删了中间的空格,就会出错,一定要加上g。

场景3:处理特殊空格(比如全角空格)

有时候你会遇到复制来的文字里有全角空格,就是那种占一个汉字位置的空格,比如用户用输入法打出来的“北京 朝阳区”(中间的空格是全角)。这时候用刚才的trim()和/\s/g就不管用了,因为它们只能识别半角空格。

这种情况可以调整正则表达式,把全角空格也加进去。全角空格的Unicode编码是\u3000,所以正则可以写成/[\s\u3000]/g,意思是匹配所有半角空格和全角空格。比如刚才的变量const name = ' 李小明  ';,运行name.replace(/[\s\u3000]/g, ''),结果就是'李小明',不管是前后的半角空格,还是中间的全角空格,都能删掉。

最后提醒的小细节

在实际用这些方法时,还要注意,不管是哪种方法,处理后的结果都是新字符串,不会修改原来的变量。比如你写address.trim(),原来的address变量还是带前后空格的,需要把结果存回变量,比如const newAddress = address.trim();,这样新变量才是处理后的内容。

这些方法覆盖了大部分日常场景,不管是整理表单内容,还是处理用户输入的文本,都能轻松应对。

上一篇 Swift语言核心特性与日常开发实用场景科普解析