如何忽略字符串多余空格,比较两个JavaScript字符串是否相等?
忽略多余空格比较字符串的解决方案
你可以用正则表达式轻松处理这类问题,核心思路是先把两个字符串里的多余空格统一处理成一致格式,再进行比较。下面给两种常用方案:
方案1:完全移除所有空格(仅比较字母内容)
如果你的需求是彻底忽略所有空格,只对比字母组成的核心内容,直接用正则把所有空白字符删掉即可:
const message = 'Hello javascript world '; const message1 = 'Hello javascript world '; // 定义处理函数:移除所有空白字符 const stripAllSpaces = str => str.replace(/\s+/g, ''); // 比较处理后的结果 console.log(stripAllSpaces(message) === stripAllSpaces(message1)); // 输出 true
这里的/\s+/g正则会全局匹配一个或多个空白字符(包括空格、制表符等),并用空字符串替换,最终两个字符串都会变成'Hellojavascriptworld',自然相等。
方案2:规范化空格(保留单词间单个空格)
如果需要保留单词之间的正常空格,只是去掉首尾和中间的多余空格,可以先通过trim()去掉首尾空格,再把中间的多个空格替换成单个:
const message = 'Hello javascript world '; const message1 = 'Hello javascript world '; // 定义处理函数:规范化空格格式 const normalizeSpaces = str => str.trim().replace(/\s+/g, ' '); // 比较处理后的结果 console.log(normalizeSpaces(message) === normalizeSpaces(message1)); // 输出 true
处理后两个字符串都会变成'Hello javascript world',对比结果同样为true。
内容的提问来源于stack exchange,提问作者zgega amdi
相关产品推荐
相关产品推荐

