【问题标题】:Regular Expresions JS正则表达式 JS
【发布时间】:2020-05-09 00:58:40
【问题描述】:

有人能告诉我为什么这里没有 \D 代码就不能工作吗?我需要在 pwRegex 中使用前瞻来匹配长度大于 5 个字符、不以数字开头且具有两个连续数字的密码。

let sampleWord = "abc123";
var pwRegex =  /^\D(?=\w{5})(?=\w*\d{2})/;
let result = pwRegex.test(sampleWord);    //true 

谢谢!

【问题讨论】:

  • do not begin with numbers, ^\D 匹配任何字符,但不匹配数字。您也可以使用[^\d] 而不是\D
  • 如果已经有 \w,为什么还要使用 \w*?
  • have two consecutive digits - (?=\w*\d{2}) 确保字符串必须包含两个连续的数字,无论其位置如何。如果我们从前瞻中删除\w*,则意味着第一个非数字字符后面必须跟着两个连续的数字。
  • 为什么我不能接受你的回答?你和programmerRaj是同一个Raj吗?
  • 不,您不能接受 cmets。只需接受另一个 Raj 的回答 :-)

标签: javascript regex regex-lookarounds


【解决方案1】:

在正则表达式中,\d 匹配任何数字字符,\D 匹配任何数字字符的字符。 ^ 表示字符串的开头,所以^\D 表示开头字符不是数字。

...不要以数字开头,...

\D 不以数字开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2014-11-08
    • 2017-12-29
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多