如何检查字符串以一个字母开头,然后是4位数字

时间:2015-10-09 05:15:46

标签: javascript regex validation

如何检查字符串以一个字母开头,然后是4位数

我需要通过javascript regex测试一个字符串。 我的字符串必须以'P'开头,然后必须是4位数字。刺的总长度应为5(p + 4位数)

示例:P1234 或者p5263

我测试过:

package com.controller;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value="/serv")
public class serv {
    @RequestMapping(value = "/getMsg",  method = RequestMethod.GET)
    public @ResponseBody
    String getMsg(HttpServletRequest req, HttpServletResponse res){
        System.out.print("here");
        String name = req.getParameter("uname");
        //req.setAttribute("name",name);
        return name;
    }
}
$(function(){
    
    $('.p-input').keyup(function(e){
      var entered_value = $(this).val();
      var regexPattern = /^[pP]+[0-9]{4}$/;         
                 
      if(regexPattern.test(entered_value)) {
          $(this).css('background-color', 'white');
          $('.err-msg').html('');
      } else {
          $(this).css('background-color', 'red');
          $('.err-msg').html('Enter a valid value');
      }
    });
    
});
.err-msg { font-size:small; font-style:italic; color:red; }

但在上面的代码中,它使用'pp1236','ppp1236'

在我的代码中无法修复p次。

1 个答案:

答案 0 :(得分:4)

您必须删除+。它是一个或无限时间量词,所以在你的例子中" p"或" P"必须发生一次或多次。

没有量词,它意味着" p"或" P"必须只发生一次。

所以这是正确的RegExp:/^[pP][0-9]{4}$/

网站regex101.com非常适合在php,javascript和python中测试正则表达式:)

修改 在您的问题的评论中,人们建议使用{1}量词。 这个量词是无意义的"因为它是默认值。