Pet*_*háč -1 javascript readability brackets
我正在为1级单身学生学习JavaScript基础知识准备一个简短的教程.任务是验证电话号码.该号码不得包含非数字,且长度不得超过14位.下面的代码摘录是我想出的,我想尽可能让它变得可读.
if (
//set of rules for invalid phone number
phoneNumber.length == 0 //empty
|| phoneNumber.length > 14 //too long
|| /\D/.test(phoneNumber) //contains non-digits
) {
setMessageText(invalid);
} else {
setMessageText(valid);
}
Run Code Online (Sandbox Code Playgroud)
一个简单的问题我无法回答自己,并希望听到你的意见:如何定位周围(最外面)的括号?很难看出普通和大括号之间的区别.你通常把最后一个)放在与最后一个条件相同的线上吗?你自己保持第一个开口(吗?您是否也将每个子条件包装在括号中?你是水平对齐第一个(和最后一个),还是将最后一个)放在同一列if?
你是保持) {单独的一行还是将最后)一行放在同一行的最后一个子条件下,然后将开口{放在一个新行上?或者你只是把它) {放在最后一个子条件的同一行?
社区维基.
编辑 请仅发布关于括号的使用和放置的意见.代码不需要重新考虑.这适用于几周前才引入JavaScript的人.我不是在征求意见如何编写代码,因此它更短或性能更好.我只想知道如何在IF条件下放置括号.
我会重构将电话号码验证为函数的逻辑:
function isValidPhoneNumber(phone) {
if (phone.length == 0) return false;
if (phone.length > 14) return false;
return !/\D/.test(phone);
}
Run Code Online (Sandbox Code Playgroud)
或者您也可以使用正则表达式检查长度:
function isValidPhoneNumber(phone) {
return /^\d{1,14}$/.test(phone);
}
Run Code Online (Sandbox Code Playgroud)
通过验证电话号码的功能,代码变得更简单:
if (isValidPhoneNumber(phoneNumber)) {
setMessageText(valid);
} else {
setMessageText(invalid);
}
Run Code Online (Sandbox Code Playgroud)
甚至:
setMessageText(isValidPhoneNumber(phoneNumber) ? valid : invalid);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |