javascript验证文本输入框中的可变字母和数字序列

时间:2016-02-22 14:26:30

标签: javascript jquery regex

我在数据库中有许多不同的公司(客户)。每个都需要一个订单号传递给他们。但他们都希望订单号是不同的数字和字母序列。

所以在DB中我有一个代表这种格式的列。例如 @@@###@@@ => 3 letters, 3 numbers, 3 letters AB##@@ => 'AB', 2 numbers, 2 letters ###### => 6 numbers

我需要验证这些订单号的用户输入(到文本框),以便它们符合客户关于字符串结构的要求。

我是如何用javascript实现这一目标的?是否有我可以使用的功能或库,我可以简单地插入'从DB获取的格式,它将根据用户输入的字符返回true或false。

A'固定'正则表达式很容易,但这是动态的,基于客户,有数百种不同的格式......

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用select元素为用户选择他们将输入客户编号的公司;在选择中,您可以显示与该公司相关联的input元素,其pattern属性包含反映该公司所需输入的RegExp

答案 1 :(得分:0)

如果@ - >信和# - >数字是你唯一的特殊情况,你可以简单地替换为正则表达式。

var formatField = "AB##@#YZ";
formatField = formatField.split('@').join('[a-zA-Z]');
formatField = formatField.split('#').join('[0-9]');

var reg = new RegExp("^" + formatField + "$");
console.log(reg.test("AB12R3YZ")); // true
console.log(reg.test("2312R3YZ")); // false

JSFiddle