JavaScript中的正则表达式,允许最多10位数字,数字之间只有一个下划线,并防止在前5位数字后输入下划线

JavaScript中的正则表达式,允许最多10位数字,数字之间只有一个下划线,并防止在前5位数字后输入下划线,javascript,regex,Javascript,Regex,我正在寻找一个正则表达式,可以用来屏蔽输入字段值。条件如下 只允许使用数字和下划线 只允许使用一个下划线 最多允许10位数字 防止在前6位数字后输入下划线 在前5位数字之后,如果没有添加下划线,则应自动显示下划线 下划线后的数字不应超过5位 /^\d*\_?(?:\d{1,5})?$/ 上述表达式可以处理条件1和2 举几个例子: 12345_67890 - Valid 123456_7890 - Not valid 12345_678901 - Not valid 1234A -Not val

我正在寻找一个正则表达式,可以用来屏蔽输入字段值。条件如下

只允许使用数字和下划线

只允许使用一个下划线

最多允许10位数字

防止在前6位数字后输入下划线

在前5位数字之后,如果没有添加下划线,则应自动显示下划线

下划线后的数字不应超过5位

/^\d*\_?(?:\d{1,5})?$/
上述表达式可以处理条件1和2

举几个例子:

12345_67890 - Valid
123456_7890 - Not valid
12345_678901 - Not valid
1234A -Not valid
12345 - Valid
12_45_56 - Not Valid
12_45 - Valid
_12 - Valid
12_ - Valid
-678901 - Not valid

您可以使用此正则表达式:

^(?=(?:_?\d_?){1,10}$)\d{0,5}_?\d{0,5}$
正则表达式详细信息:

^:开始 ?=?: \d{0,5}:匹配0到5个数字 _?\d{0,5}:匹配可选下划线,后跟0到5位数字 $:完 在前5位数字之后,如果没有添加下划线,则应自动显示下划线 基于编辑的问题。如果您想在5位数字后插入一个u,如果缺少,则使用上面的正则表达式进行匹配,然后使用下一个正则表达式进行替换:


您可以使用此正则表达式:

^(?=(?:_?\d_?){1,10}$)\d{0,5}_?\d{0,5}$
正则表达式详细信息:

^:开始 ?=?: \d{0,5}:匹配0到5个数字 _?\d{0,5}:匹配可选下划线,后跟0到5位数字 $:完 在前5位数字之后,如果没有添加下划线,则应自动显示下划线 基于编辑的问题。如果您想在5位数字后插入一个u,如果缺少,则使用上面的正则表达式进行匹配,然后使用下一个正则表达式进行替换:

试试这个

^(?<=\d{0,5})\d{0,5}_?\d{0,5}(?=\d{0,5})$
下面是这个正则表达式的工作原理

\d{0,5}\d{0,5}

这符合要求的条件。共有10位数字,其中5位数字后不能出现。我们开始吧。我们检查atmost 5位数字是否出现在u之前和之后

试试这个

^(?<=\d{0,5})\d{0,5}_?\d{0,5}(?=\d{0,5})$
下面是这个正则表达式的工作原理

\d{0,5}\d{0,5}

这符合要求的条件。共有10位数字,其中5位数字后不能出现。我们开始吧。我们检查atmost 5位数字是否出现在u之前和之后



?它必须是一个单一的正则表达式还是一系列的测试如果不能用一个表达式来完成,那么系列的检查就可以了。你有没有尝试过?@anubhava更新了标题和描述以更好地理解它可以用下划线开始吗?它必须是一个单一的正则表达式还是一系列的测试系列的检查好的,如果不能用一个表达式来表达。你有没有尝试过?@anubhava更新了标题和描述以更好地理解它可以用下划线开始吗?谢谢,我会尝试一下,让你知道反馈。1、\u 123是有效的。请看一看。下划线可以位于除前6位之外的任何位置。为此,只需使用str=str.replace/^\d{5}\d*$/,“$1\u$2”,如我的回答所示。是的,感谢您的支持。谢谢,我会尝试一下,并让您知道反馈。1\u123是有效的。请看一看。下划线可以在除前6位之外的任何位置。为此,只需使用str=str.replace/^\d{5}\d*$/,“$1\u$2”,如我的回答所示。是的,感谢您的支持。一些警告显示在那里,请看一看。Thanks@Soojoo你不必担心他们。这是对前方操作员的警告。我可以说每个浏览器都支持它们。@Soojoo我更新了这个正则表达式的工作原理,如果你没有得到什么,一定要告诉我。当然,我正在检查所有可能的情况。谢谢。它将匹配一个单张以及一些警告,请看一看。Thanks@Soojoo你不必担心他们。这是对前方操作员的警告。我可以说每个浏览器都支持它们。@Soojoo我更新了这个正则表达式的工作原理,如果你没有得到什么,一定要告诉我。当然,我正在检查所有可能的情况。谢谢。它也会和单曲相配