首页 > 解决方案 > '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

标签: javascriptregexalgorithmvisual-web-developer

解决方案


正如其他人指出的那样,您不能将语句放入条件表达式(或任何其他表达式)中,您只能放入表达式。

您得到的错误是因为它认为您正在尝试编写对象文字,但您不能在对象文字中进行赋值。

您可以使用正常的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);
}

推荐阅读