【问题标题】:Regular expressions in Javascript (4 number and 1 letter) [duplicate]Javascript中的正则表达式(4个数字和1个字母)[重复]
【发布时间】:2015-11-17 22:36:48
【问题描述】:

我需要一个正则表达式作为密码。此密码必须有 4 个数字后跟 1 个字母。

例如:

1234a

我的代码不起作用:

var txt = new RegExp("/([0-9]{4}[a-z]{1})");
var pass = document.getElementById("pass").value;

if (txt.test(pass)) {
     alert("OK");
} else {
     alert("No OK");
}

【问题讨论】:

  • 您需要开始和结束锚点。试试这个:^\d{4}[A-Za-z]$.
  • 这听起来像是功课,因为这是我能想象到的对真实密码的最糟糕的限制。
  • 即使是作业,问题至少是关于评估OP编写的代码,而不仅仅是要求我们给出答案

标签: javascript regex


【解决方案1】:

当您使用new RegExp 时,您不需要在传递给它的字符串的开头和结尾处有/。使用这个:

var txt = new RegExp("([0-9]{4}[a-z]{1})");

如果您想使用 new RegExp 将任何修饰符传递给正则表达式,则将它们作为第二个参数传递:

var txt = new RegExp("([0-9]{4}[a-z]{1})", "i");

【讨论】:

  • 两个缺点:1) 使用了构造函数,而文字表示法更可取,2) 没有使用允许像 #$@RFWEEabcd1er45$$$$ 这样的字符串的锚。
  • @stribizhev - OP 说其他角色不行吗?他只说它必须有 4 个字母,然后在某处编号。
  • 我看到你把它翻译成包含。我很确定 OP 的意思是等于。但是,当一个问题不清楚时,我宁愿避免更多的 cmets。
猜你喜欢
  • 2010-11-02
  • 2012-11-10
  • 2018-01-31
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
相关资源
最近更新 更多