我在数据库中有许多不同的公司(客户)。每个都需要一个订单号传递给他们。但他们都希望订单号是不同的数字和字母序列。
所以在DB中我有一个代表这种格式的列。例如
@@@###@@@ => 3 letters, 3 numbers, 3 letters
AB##@@ => 'AB', 2 numbers, 2 letters
###### => 6 numbers
等
我需要验证这些订单号的用户输入(到文本框),以便它们符合客户关于字符串结构的要求。
我是如何用javascript实现这一目标的?是否有我可以使用的功能或库,我可以简单地插入'从DB获取的格式,它将根据用户输入的字符返回true或false。
A'固定'正则表达式很容易,但这是动态的,基于客户,有数百种不同的格式......
任何帮助表示感谢。
答案 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