javascript - 'SyntaxError: Invalid shorthand property initializer' 使用正则表达式时
问题描述
我正在尝试使用以下功能验证引脚
function validate(num){
num.length === 4 || num.length === 6 ? {
regex = /\d+/,
regex:test(num)
}
:
false
}
但是我收到了这个错误,我不知道为什么
/home/runner/index.js:3
regex = /\d+/,
^^^^^^^^^^^^^
SyntaxError: Invalid shorthand property initializer
解决方案
正如其他人指出的那样,您不能将语句放入条件表达式(或任何其他表达式)中,您只能放入表达式。
您得到的错误是因为它认为您正在尝试编写对象文字,但您不能在对象文字中进行赋值。
您可以使用正常的if
语句:
if (num.length == 4 || num.length == 6) {
var regex = /\d+/;
return regex.test(num);
} else {
return false;
}
但是根本不需要条件,您可以在正则表达式本身中测试长度。
function validate(num) {
return /^\d{4}$|^\d{6}$/.test(num);
}
推荐阅读
- python - 为什么 Psycopg2 很难在 CSV 中解析我的逗号
- angular - Angular 4 - 获取在 url 标头中发送的信息
- docker - 同一 Docker 网络中的 OAuth2 服务器和客户端
- python-2.7 - 我们可以在相同的代码中编写另一个解析方法来解析来自新生成的 url 的数据......?
- spring-boot - Spring boot 2 和 AWS DynamoDB 健康端点
- php - Codeigniter 分页不显示?
- go - 如何分配常驻内存?
- c# - StreamWriter.Write 是否阻塞当前线程?
- sql - 错误:仅本机编译的模块支持参数
- laravel - 如何创建一个excel文件并在邮件中附加而不存储在本地磁盘中