ragunathjawahar / android-saripaar

UI form validation library for Android
Apache License 2.0
3.22k stars 460 forks source link

When validating Digits, some locales will fail Regex #226

Closed andrew-locklair closed 5 years ago

andrew-locklair commented 5 years ago

Reproduced by setting locale of phone to Arabic and using the @Digits rule. Since Arabic has different numerals, Regex compilation fails.


    Process: com.frogslayer.*, PID: 20980
    java.util.regex.PatternSyntaxException: Error in {min,max} interval near index 7
    (\d{0,٤})(\.\d{1,١})?
           ^
        at java.util.regex.Pattern.compileImpl(Native Method)
        at java.util.regex.Pattern.compile(Pattern.java:1342)
        at java.util.regex.Pattern.<init>(Pattern.java:1326)
        at java.util.regex.Pattern.compile(Pattern.java:948)
        at java.util.regex.Pattern.matches(Pattern.java:1048)
        at java.lang.String.matches(String.java:2184)
        at com.mobsandgeeks.saripaar.rule.DigitsRule.isValid(DigitsRule.java:36)
        at com.mobsandgeeks.saripaar.rule.DigitsRule.isValid(DigitsRule.java:24)
        at com.mobsandgeeks.saripaar.Validator.validateViewWithRule(Validator.java:805)
        at com.mobsandgeeks.saripaar.Validator.getValidationReport(Validator.java:758)
        at com.mobsandgeeks.saripaar.Validator.validateTill(Validator.java:712)
        at com.mobsandgeeks.saripaar.Validator.validateFieldsWithCallbackTill(Validator.java:697)
        at com.mobsandgeeks.saripaar.Validator.validateUnorderedFieldsWithCallbackTill(Validator.java:679)
        at com.mobsandgeeks.saripaar.Validator.validate(Validator.java:334)
        at com.mobsandgeeks.saripaar.Validator.validate(Validator.java:295)```