我有一个SAPUI5项目,并且有一个输入,我想对其进行一些验证。
它输入一个 8 个字符长度的条目,混合了数字和字母。我的输入最大长度已经为 8 个字符。
我需要创建一个函数,只允许在条目中的某些字符处输入数字或字母(见下文(。
1 - 字母 2 - 字母 3 - 编号 4 - 字母 5 - 编号 6 - 编号 7 - 编号 8 - 数字
例如,BP1A8123
有没有办法在JavaScript中做到这一点?我遇到过仅字母或仅数字的示例,但找不到条目中某些字符的数字/字母示例。
任何方向将不胜感激。
从 JavaScript 的角度来看,你可以像这样做检查:
pattern = RegExp('[A-Z]{2}[0-9]{1}[A-Z]{1}[0-9]{4}')
pattern.test('BP1A8123') // true
pattern.text('B1111111') // false
从 SAPUI5 的角度来看,输入验证通常通过数据绑定进行处理。例如,请参阅此 SAPUI5 演示套件示例。另请参阅类"sap.ui.core.Core"的validationError
和validationSuccess
事件。
但是,对于您的特定要求,sap.m.MaskInput
控件可能是您所追求的。请参阅此演示套件示例。
所以我们有模板:
template = ['letter', 'letter', 'number', 'letter',
'number', 'number', 'number', 'number']
。和一些输入:
input = 'BP1A8123'
然后,我们可以只使用isNaN()
来检查相应的字符是否为字母:
input.split('').every((c,i) => isNaN(c) || template[i] == 'number')
在这种情况下,这给出了true
。
您可以使用.split('')
拆分字符串(请参阅此处(,将字符解析为int以使用isNaN
检查变量是否为数字(请参阅此处(。