javascript - 如何使用 javascript 验证 pin?
问题描述
我遇到了这个问题。非常感谢任何反馈。
“ATM 机允许 4 位或 6 位 PIN 码,而 PIN 码只能包含 4 位或 6 位数字。
如果函数传递了一个有效的 PIN 字符串,则返回 true,否则返回 false。”
到目前为止,这是我的代码:
if (pin.length === 4 || pin.length === 6) {
return true
} else {
return false
}
if ((pin.matches(/\b(\w)/g))) {
return true
} else {
return pin
}
}
它只是通过了一些关于代码战的测试。我认为我有太多的 if 语句?
解决方案
只需添加一个额外的条件来检查字符串在转换为数字后是否实际上是一个数字。
function test(pin) {
if ((pin.length === 4 || pin.length === 6) && Number.isInteger(+pin)) {
return true
} else {
return false
}
}
console.log(test('123'));
console.log(test('1234'));
console.log(test('123a'));
console.log(test('asbcf'));
console.log(test('125676'));
推荐阅读
- spring-boot - 如何在 H2 嵌入式数据库中创建虚拟函数以进行集成测试
- angular - 如何以角度为服务页面编写单元测试用例?
- google-apps-script - 在 Google 表格中通过 HYPERLINK 以编程方式检索数据
- java - ClassCastException getOrDefault 用于返回值对象
- java - 如何在 Java-8 中连接 2 个列表,以便 2 个列表中相同索引处的元素在结果列表中聚集在一起
- sql - SQL Server - 报告产生错误的查询
- qt - 如何在 qml.xml 中设置组件的大小和位置。这样它就可以支持不同的设备
- reactjs - 如何使用 create-react-app 部署 React 应用程序
- c# - MVVM中的窗口淡出
- c++ - 将 cuda 对象文件 .cu.o 与 CMake 链接原因:在函数 `__sti____cudaRegisterAll()' * 未定义引用 `__cudaRegisterLinkedBinary *