Javascript-输入验证-是否可以检查字符x是数字,字符y是字母

时间:2018-10-04 14:50:30

标签: javascript jquery validation sapui5

我有一个SAPUI5项目,并且有一个我想对其进行验证的输入。

它正在输入8个字符的长度的数字和字母的混合输入。输入的最大长度已经是8个字符。

我需要创建一个仅允许在条目中某些字符处输入数字或字母的函数(见下文)。

1-字母 2-字母 3-数字 4-字母 5-数字 6-数字 7-数字 8-数字

例如BP1A8123

有没有办法用JavaScript做到这一点?我碰到过仅字母或数字示例,但在条目中某些字符处找不到数字/字母示例。

任何方向将不胜感激。

3 个答案:

答案 0 :(得分:2)

从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 Demokit Sample。另请参见类`sap.ui.core.Core'validationErrorvalidationSuccess事件。

但是,对于您的特定要求,sap.m.MaskInput控件可能是您所追求的。参见此Demokit example

答案 1 :(得分:0)

所以我们有了模板:

template = ['letter', 'letter', 'number', 'letter',
            'number', 'number', 'number', 'number']

...和一些输入内容:

input = 'BP1A8123'

然后我们可以使用isNaN()来检查各个字符是否为字母:

input.split('').every((c,i) => isNaN(c)  || template[i] == 'number')

在这种情况下给出true

答案 2 :(得分:-1)

您可以使用.split('')see here)分割字符串,使用isNaNsee here)将字符解析为int以检查变量是否为数字。 / p>