小编Eyf*_*yfI的帖子

正则表达式恰好匹配5个数字和一个可选空格

我最近需要创建一个正则表达式来检查JavaScript中的输入.输入可以是5或6个字符长,并且必须包含正好5个数字和一个可选空格,它们可以是字符串中的任何位置.我根本不是正则表达式,即使我尝试寻找更好的方法,我最终得到了这个:

(^\d{5}$)|(^ \d{5}$)|(^\d{5} $)|(^\d{1} \d{4}$)|(^\d{2} \d{3}$)|(^\d{3} \d{2}$)|(^\d{4} \d{1}$)  
Run Code Online (Sandbox Code Playgroud)

这就是我需要的,所以允许的输入是(如果0是任何数字)

'00000'  
' 00000'  
'0 0000'  
'00 000'  
'000 00'  
'0000 0'  
'00000 '
Run Code Online (Sandbox Code Playgroud)

我怀疑这是与正则表达式实现这种匹配的唯一方法,但我还没有找到一种更清洁的方法.所以我的问题是,如何更好地编写?

谢谢.

编辑:
所以,这是可能的!Tom Lord的回答用正则表达式做了我需要的,所以我把它标记为我的问题的正确答案.

然而,在我发布这个问题后不久,我意识到我的想法不对,因为项目中的每个其他输入都很容易用正则表达式"验证",我立即假设我也可以用它来验证这个.

事实证明我可以这样做:

const validate = function(value) {
    const v = value.replace(/\s/g, '')
    const regex = new RegExp('^\\d{5}$');
    return regex.test(v);
}  
Run Code Online (Sandbox Code Playgroud)

谢谢大家的精彩答案和想法!:)

Edit2:我忘了提一个可能非常重要的细节,即输入是有限的,所以用户最多只能输入6个字符.我很抱歉.

javascript regex validation

19
推荐指数
3
解决办法
6287
查看次数

标签 统计

javascript ×1

regex ×1

validation ×1