2015-10-09 37 views
0

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

我需要测试由JavaScript正则表达式的字符串。 我的字符串必须以'P'开头,然后4位数字必须是。刺的总长度应为5(P + 4位数字)

例如:

$(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; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" name="" class="p-input" /> 
 
<span class="err-msg"></span>

但在上面的代码:P1234 或p5263

我有测试它与'pp1236','ppp1236'

在我的代码不能修复p事件。

+1

var regexPattern =/^ [pP] {1} [0-9] {4} $ /; – Anonymous0day

+1

你只需要改变它:'var regexPattern =/^ [pP] {1} [0-9] {4} $ /; ' – gek0n

+0

@ Anonymous0day谢谢 –

回答

4

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

没有量词,它意味着“p”或“P”只能发生一次。

因此,这是一个正确的正则表达式:/^[pP][0-9]{4}$/

该网站regex101.com非常适合在PHP中测试正则表达式,JavaScript和Python的:)

编辑: 在你的问题的人的意见建议使用{1}量词。 这个量词是“无意义的”,因为它是默认的。

+1

+是一个或多个量词吗? –

+0

你是对的,对不起,这是凌晨在这里... – DavidVollmers

+0

是的,我承认,这是“毫无意义” – Anonymous0day

相关问题