Javascript 用于在<;中重复(类似)表达式的正则表达式;输入>;JQuery
我有一个带有文章编号的输入文本字段,如下所示:Javascript 用于在<;中重复(类似)表达式的正则表达式;输入>;JQuery,javascript,regex,Javascript,Regex,我有一个带有文章编号的输入文本字段,如下所示: ABC_ABC123; AB__B2A4; ABF_323WET; ... 因此,我想请用户保留艺术编号格式 这是我的正则表达式,它适用于一个艺术编号: var mask1 = /^([A-Z]{2})([A-Z|_]{1})_([A-Z0-9]{0,16});$/; 但我想把它扩展到更多的字符串/艺术编号 我怎样才能解决这个问题 谢谢 在单项目模式中,匹配小写字母有问题,必须将它们添加到字符类,[a-Z0-9]{0,16}=>[a-Za-Z0
ABC_ABC123; AB__B2A4; ABF_323WET; ...
因此,我想请用户保留艺术编号格式
这是我的正则表达式,它适用于一个艺术编号:
var mask1 = /^([A-Z]{2})([A-Z|_]{1})_([A-Z0-9]{0,16});$/;
但我想把它扩展到更多的字符串/艺术编号
我怎样才能解决这个问题
谢谢 在单项目模式中,匹配小写字母有问题,必须将它们添加到字符类,
[a-Z0-9]{0,16}
=>[a-Za-Z0-9]{0,16}
总体解决方案如下所示
/^[A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};(?: [A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};)*$/
见
详细信息
-字符串的开头^
[A-Z]{2}[A-Z}{[A-Za-z0-9]{0,16}代码>-您的项目模式:
-两个大写ASCII字母[A-Z]{2}
-大写ASCII字母或[A-Z]
字符
-0到16个字母数字ASCII字符[A-Za-z0-9]{0,16}
代码>-分号
-0次或多次出现(?:[A-Z]{2}[A-Z}[A-Za-z0-9]{0,16};)*
-空格(替换为
以匹配构造函数符号中的任何空白,\s
)\\s
[A-Z]{2}[A-Z}{[A-Za-z0-9]{0,16}代码>-项目模式
-字符串结束$
var block=“[A-Z]{2}[A-Z_].[A-Za-z0-9]{0,16};”
var regex=new RegExp(`^${block}(?:${block})*$`)
console.log(regex.test(“ABC_abc123;AB_B2A4;ABF_323; wet;”)
Try/^[A-Z]{2}[A-Z}[A-Za-z0-9]{0,16};(?:[A-Z]{2}[A-Z]{A-Za-z0-9]{0,16};)*$/
,请参阅。谢谢,它很管用!你能给我写一个简短的解释吗?我想准确地理解它。再次感谢!我不想接受小写字母,输入样式将是大写。@MátéKiss您的示例中有ABC_abc123
。如果你不想匹配,你需要编辑你的问题。@MátéKiss无论如何,你可以随意修改正则表达式,使用动态构建,它会变得更容易处理。