【发布时间】:2018-07-07 00:07:17
【问题描述】:
在下面的代码中,RegexConstraint 不起作用,因为电话号码的结果总是不正确。怎么了?我需要检查一个手机号码(没有国家代码)。例如,输入 3652312453 应该是正确的,但在下面的代码中它被评估为不正确。 我从评论中链接的讨论中复制了正则表达式:我唯一的要求是有效的电话号码。
(注意:这个问题不是针对通用Java,而只是针对Codename One。“CountryCodePicker”类扩展了“Button”类:我报告它是为了明确电话号码和国家代码分开)
TextModeLayout tl = new TextModeLayout(1, 1);
Container loginContainer = new Container(tl);
TextComponent phone = new TextComponent().label("PHONE").errorMessage("INVALID-PHONE");
CountryCodePicker countryCode = new CountryCodePicker();
phone.getField().setConstraint(TextArea.PHONENUMBER);
loginContainer.add(phone);
Container loginContainerWithCodePicker = new Container(new BoxLayout(BoxLayout.X_AXIS_NO_GROW));
loginContainerWithCodePicker.add(countryCode).add(loginContainer);
// https://stackoverflow.com/questions/8634139/phone-validation-regex
String phoneRegEx = "/\\(?([0-9]{3})\\)?([ .-]?)([0-9]{3})\\2([0-9]{4})/";
val.addConstraint(phone, new RegexConstraint(phoneRegEx, "NOT-VALID-NUMBER"));
Button loginButton = new Button("LOG-IN");
val.addSubmitButtons(loginButton);
【问题讨论】:
标签: codenameone