如何比较javascript布尔函数中的字符串?
我必须为JavaScript函数编写一个单元测试来比较两个电话号码。这是一个输入参数为两个字符串的函数,返回类型为如何比较javascript布尔函数中的字符串?,javascript,function,boolean,string-comparison,stringcomparer,Javascript,Function,Boolean,String Comparison,Stringcomparer,我必须为JavaScript函数编写一个单元测试来比较两个电话号码。这是一个输入参数为两个字符串的函数,返回类型为true/falseTrue如果电话号码相同,如果不相同,则为false。测试中应包括尽可能多的情况 函数的定义是phoneNrsAreEqual(nr1:String,nr2:String):Bool 谢谢你帮助我 我相信这就是你需要的 可以使用replace函数删除空格 功能电话号码号码(第一个号码,第二个号码){ return removespace(firstNumber)
true/false
True
如果电话号码相同,如果不相同,则为false
。测试中应包括尽可能多的情况
函数的定义是phoneNrsAreEqual(nr1:String,nr2:String):Bool
谢谢你帮助我 我相信这就是你需要的 可以使用replace函数删除空格
功能电话号码号码(第一个号码,第二个号码){
return removespace(firstNumber)=removespace(secondNumber);
}
函数RemoveSpace(str){
return str=str.replace(/\s+/g',);
}
首先,通过创建没有标点符号的字符串版本来清除电话号码
function cleanPhoneNumber(n) {
return n.replace(/[() +-]/g,"");
}
function phoneNrsAreEqual(nr1, nr2) {
return cleanPhoneNumber(nr1) === cleanPhoneNumber(nr2);
}
如果数字包括国际数字,情况会复杂得多,因为有太多不同的方式来表示它们
(01234) 567890
+44 (1234) 567890
01144 (1234) 567890 (when dialed from US)
所有的数字都是相同的。
是的,我正在寻找一些类似的东西,但是我必须考虑,数字可以是空间的,例如0947854789和0947,854,789个数是相同的,但是它会因为空间而返回错误,或者如果使用前拨号。<代码>返回第一个数=第二个数< /代码>返回真或假,使用<代码>?true:false是没有意义的。返回str=str.replace(/\s+/g')
实际上应该是返回str.replace(/\s+/g',)代码>返回中的作业没有意义。感谢您的帮助austin。所以如果我理解正确的话,在functin中调用函数cleanPhoneNumber来比较数字是有效的吗?是的cleanPhoneNumber
是一个助手函数,给定一个电话号码,返回该号码的一个版本,并删除标点。return语句正在比较清除版本的nr1
和清除版本的nr2
。==
运算符执行严格的相等比较,以检查干净字符串是否相等,从而生成true或false。