正则表达式的Javascript检查不包含字符串模式的开头

时间:2015-10-23 03:12:28

标签: javascript regex

我正在尝试在手机中找到匹配的模式,因为没有以某些字符串开头。

例如:

  1. 输入:+551234467 模式:不是以+55

  2. 开头
  3. 输入:557875756 模式:不是以55

  4. 开头

    到目前为止,我已经尝试了很多模式,有些只给出了没有+的字符串的结果。

    /[^(\+55)]/

    /^(?!\+55).*$/

    /[?!\+5|55]{2}/

    /[^\+55|^\+5|^55]/

    有人请帮我解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:3)

  

我忘了再提一个用例,因为557875756也不应该匹配。手段+55& 55 - OP对问题的评论

使用以下正则表达式。

^\+?(?!55)\d+$

Regex Demo and Explanation

  1. ^:从Anchor开始
  2. \+?:匹配零个或一个+符号
  3. (?!55):负面预测,与55
  4. 不匹配
  5. \d+:匹配一个或多个数字
  6. $:以Anchor结尾
  7. <强>演示

    input:valid {
      color: green;
    }
    input:invalid {
      color: red;
    }
    <input type="text" pattern="\+?(?!55)\d+" />