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

javascript validation of a variable sequence of letters and numbers from a text input box

本文关键字:数字 文本 验证 输入 JavaScript      更新时间:2023-09-26

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

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

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

任何想法如何用javascript实现这一目标?有没有我可以使用的函数或库,我可以简单地"插入"从数据库中获取的格式,它会根据用户输入的字符返回 true 或 false。

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

任何帮助表示赞赏。

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

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

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