Javascript 如何比较内部有双空格的文本(“a b”与“a b”相等)?
我有一些常量文本,我想检查用户的输入是否与此文本相等,并具有一定的灵活性。 我希望允许输入传递,即使大小写不同(已经知道如何做),或者由于多个空格而不同Javascript 如何比较内部有双空格的文本(“a b”与“a b”相等)?,javascript,Javascript,我有一些常量文本,我想检查用户的输入是否与此文本相等,并具有一定的灵活性。 我希望允许输入传递,即使大小写不同(已经知道如何做),或者由于多个空格而不同 const statement = 'Please enter this text'; const isEqual = (first, second) => { ... } isEqual(statement, "please enter this text"); // should be true isEqual
const statement = 'Please enter this text';
const isEqual = (first, second) => { ... }
isEqual(statement, "please enter this text"); // should be true
isEqual(statement, " please Enter this text "); // should be true
isEqual(statement, "please Enter this text"); // should be true
isEqual(statement, "please Enterthis text"); // should be false
isEqual(statement, "ple ase Enter this text"); // should be false
使用这个功能,你就可以很好地使用了
const isEqual = (first, second) => {
return first.toLowercase() === second.replace( /\s\s+/g, ' ' ).trim().toLowercase();
}
在这里,我们用单套管替换多个空间,然后降低两个管柱的套管,然后比较它们。下部外壳正在此处导入。您需要:
trim
字符串const语句='请输入此文本';
常量normalizeString=(str)=>str.trim().replace(/\s+/g,“”).toLowerCase()
常量相等=(第一,第二)=>normalizeString(第一)==normalizeString(第二)
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为false
console.log(isEqual(语句,“请输入此文本”)//应为false
这将为您提供预期的结果:
const isEqual = (first, second) => {
first = first.trim().toLowerCase().replace(/\s\s+/g, ' ');
second = second.trim().toLowerCase().replace(/\s\s+/g, ' ');
if(first == second) {
return true;
}
return false
}
事实上,你只想知道单词是否相同(顺序相同),你不在乎它们之间有多少空格
const语句='请输入此文本';
常数相等=(第一,第二)=>!first.localeCompare(second.match(/\w+/g).join(“”),'en',{sensitivity:'base'})
log(isEqual(语句“请输入此文本”),“应为true”)
log(isEqual(语句“请输入此文本”),“应为true”)
log(isEqual(语句“请输入此文本”),“应为true”)
log(isEqual(语句“请输入此文本”),“应为false”)
log(isEqual(语句,“请输入此文本”),“应为false”)
这是我的,但答案更好
const语句='请输入此文本'
常数相等=(第一,第二)=>{
const arrFirst=first.toLowerCase().split(“”)
const arrSecond=second.toLowerCase().split(“”).filter((t)=>{
返回t
})
console.log(arrFirst.join(“”)==arrSecond.join(“”))
}
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为true
console.log(isEqual(语句“请输入此文本”)//应为false
console.log(isEqual(语句,“请输入此文本”)//应为false
,因此字符串应相等,而不考虑大小写之间的空格?修剪前导空格和尾随空格,并用单个空格替换连续空格。