比较两个字符串的字符,忽略单词之间的空白



我有两个字符串,它们使用相同的字母,但其中一个字符串在结尾和单词之间包含空格

const message = 'Hello javascript world ';
const message1 = 'Hello     javascript world              ' ;

我想忽略这些空格从2个字符串只比较字符串的其余字符,以便得到一个布尔结果等于真当我这样做消息=== message1

这需要一个正则表达式

是的,您可以使用str.replace(/s+/g, '')删除空格,然后简单地比较字符串
它看起来像这样:

const message = 'Hello javascript world ';
const message1 = 'Hello     javascript world              ' ;
const equal = message.replace(/s+/g, '') == message1.replace(/s+/g, '');
// true

可以使用String.replaceAll()方法创建一个函数,如下所示:

const message = 'Hello javascript world ';
const message1 = 'Hello     javascript world              ' ;

const stringsMatch = (str1, str2) =>  str1.replaceAll(' ', '') == str2.replaceAll(' ', '')
console.log(stringsMatch(message, message1))

或者,您可以使用String.replace()方法与您提到的regex

const stringsMatchRegex = (str1, str2) =>  str1.replace(/ /g, '') == str2.replace(/ /g, '')

console.log(stringsMatchRegex(message, message1))

我还建议在两个字符串上使用String.toLowerCase()来绕过字符大小写:

const stringsMatch = (str1, str2) =>  str1.replaceAll(' ', '').toLowerCase() == str2.replaceAll(' ', '').toLowerCase()

最新更新