使用RegEx验证字符串

时间:2016-09-26 17:23:39

标签: regex

我需要一个正则表达式来验证以下规则的字符串。

  1. 字符串不应包含任何重复字符超过2次。
  2. 字符串不应允许特殊字符,例如&,<,%
  3. 到目前为止,我设法创建了正则表达式

    /(?!(.)\1{2,})^([a-zA-Z0-9''\.\-\,]+\s?)*$/i
    

    验证规则1& 2.但我唯一的问题是它只在字符串的开头验证规则。

2 个答案:

答案 0 :(得分:2)

为了让你的负面前瞻工作,你必须做到这一点,它可以匹配经过验证的字符串中任何地方的3-in-a行;只需在其开头添加.*

/(?!.*(.)\1{2,})^([a-zA-Z0-9'".\-,]+\s?)*$/i

我还将你的角色类中的两个连续单引号改为单引号和双引号我假设你想允许并删除不必要的反斜杠转义。

答案 1 :(得分:2)

将正则表达式更改为

/(?!.*(.)\1{2,})^([a-zA-Z0-9'".,-]+\s?)*$/i
    ^^

它允许负向前瞻在整个正则表达式而不是开头。

请参阅demo