Javascript React.js RegExp始终返回false
我有这个代码来检查我的字段是否都可以使用。我的后端已经启动并工作,但我正在努力检查react方法中的正则表达式。我所做的只是在regex101中创建了一个regex,然后将其用于输入模式,但我想将其更改为方法。所以基本上正则表达式总是返回falseJavascript React.js RegExp始终返回false,javascript,reactjs,Javascript,Reactjs,我有这个代码来检查我的字段是否都可以使用。我的后端已经启动并工作,但我正在努力检查react方法中的正则表达式。我所做的只是在regex101中创建了一个regex,然后将其用于输入模式,但我想将其更改为方法。所以基本上正则表达式总是返回false // Then check regex const regInput = new RegExp( '^(?:(?:IT|SM)d{2}[A-Z]d{22}|CYd{2}[A-Z]d{23}|NLd{2}[A-Z]{4}d{10}|LVd{2}[A
// Then check regex
const regInput = new RegExp(
'^(?:(?:IT|SM)d{2}[A-Z]d{22}|CYd{2}[A-Z]d{23}|NLd{2}[A-Z]{4}d{10}|LVd{2}[A-Z]{4}d{13}|(?:BG|BH|GB|IE)d{2}[A-Z]{4}d{14}|GId{2}[A-Z]{4}d{15}|ROd{2}[A-Z]{4}d{16}|KWd{2}[A-Z]{4}d{22}|MTd{2}[A-Z]{4}d{23}|NOd{13}|(?:DK|FI|GL|FO)d{16}|MKd{17}|(?:AT|EE|KZ|LU|XK)d{18}|(?:BA|HR|LI|CH|CR)d{19}|(?:GE|DE|LT|ME|RS)d{18}|ILd{21}|(?:AD|CZ|ES|MD|SA)d{22}|PTd{23}|(?:BE|IS)d{24}|(?:FR|MR|MC)d{25}|(?:AL|DO|LB|PL)d{26}|(?:AZ|HU)d{27}|(?:GR|MU)d{28})$'
);
if (!regInput.test(this.state.iban)) {
this.setState({
error: true,
errorMsg:
'Sąskaitsssos numeris įvestas klaidingai, bandykite dar kartą',
});
console.log('error');
return;
} else {
console.log('LT597300010145601329');
}
似乎你的正则表达式就是问题所在。如果要使用模式2字母后跟18位数字,可以尝试以下正则表达式:
^[\w]{2}[\d]{18}$
以下是用于输入的
regex
:LT597300010145601329
尝试:
注意:如果只需要大写字母,则:[A-Z]{2}\d{18}
根据
IBAN或国际银行账号以两位数的国家代码开头,然后是两个数字,然后是几个字母数字字符。
您可以使用以下正则表达式:
^[a-zA-Z]{2}[\d]{2}[a-zA-Z0-9]{14,20}$
简而言之,它接受一个值,该值包含2个字母(不考虑大小写),后跟2个数字,后跟14-20个字符的字母数字字符(如果您有关于图案的更多详细信息,可以更改长度约束)
详细说明: 匹配下面列表中的单个字符[a-zA-Z]
- {2} 与上一个标记正好匹配2次
- a-z匹配a(索引97)和z(索引122)之间范围内的单个字符(区分大小写)
- A-Z匹配A(索引65)和A之间范围内的单个字符 Z(索引90)(区分大小写)
- {2} 与上一个标记正好匹配2次
- \d匹配一个数字(相当于[0-9])
- {14,20}匹配前一个标记的次数为14到20倍 尽可能多次,根据需要回馈(贪婪)
- $断言行末尾的位置
^[a-zA-Z]{2}[\d]{2}[a-zA-Z0-9]{14,20}$