如何检查字符串以一个字母开头,然后是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次。
答案 0 :(得分:4)
您必须删除+
。它是一个或无限时间量词,所以在你的例子中" p"或" P"必须发生一次或多次。
没有量词,它意味着" p"或" P"必须只发生一次。
所以这是正确的RegExp:/^[pP][0-9]{4}$/
网站regex101.com非常适合在php,javascript和python中测试正则表达式:)
修改强>
在您的问题的评论中,人们建议使用{1}
量词。
这个量词是无意义的"因为它是默认值。