Javascript日期模式

时间:2015-07-24 09:43:08

标签: javascript regex

我正在尝试创建JavaScript模式以查看输入值是否为日期,我的日期格式为2015/1月/ 01,我已尝试执行此操作\d{4}/\[A-Za-z]{3}/\d{1,2}但这不起作用,请帮我修复它

function SetValue() {
//  var newdata = document.getElementById('txtCellEditor').value;
    var myString = txtCellEditor.value;
    if (myString.match(\d{4}/\[A-Za-z]{3}/\d{1,2})) {
        alert("'myString' is date.");
}

2 个答案:

答案 0 :(得分:3)

您的regex不正确

  1. 在正则表达式的开头和结尾使用/的分隔符,即^
  2. 使用$/检查完全匹配而非子字符串
  3. 通过\
  4. 前面的[来逃离
  5. 无需逃避test()
  6. 使用match代替var regex = /^\d{4}\/[a-z]{3}\/\d{1,2}$/i; function SetValue() { var myString = document.getElementById('date').value; if (regex.test(myString)) { console.log("'myString' is date."); } else { console.log("'myString is not date."); } }
  7. <强>可视化

    enter image description here

    Demo

    &#13;
    &#13;
    <input type="text" id="date" onkeyup="SetValue()" />
    &#13;
    {{1}}
    &#13;
    &#13;
    &#13;

答案 1 :(得分:2)

大多数实际的正则表达式都很好,但你忘了把它放在/ s中,使它成为正则表达式! (你已经逃过了/ [但后退]中的一个,但没有逃过另一个。)

if (myString.match(/\d{4}\/[A-Za-z]{3}\/\d{1,2}/)) {
//                 ^     ^^           ^^       ^
//     regex quote-/      \--escaped--/        \-- regex quote