isItemValueValidStr method
dynamic
isItemValueValidStr(
- dynamic item,
- dynamic value
Implementation
isItemValueValidStr(item, value) {
myLogAll('isItemValueValidStr');
if (isNull(item)) {
return '';
}
item[gRequired] = item[gRequired] ?? false;
if (item[gRequired] && isNull(value)) {
//return getSCurrent(item[gLabel]) + getSCurrent(' $gIsrequired');
return gRequired;
}
item[gType] = item[gType] ?? gText;
if (item[gType] == gEmail &&
!isNull(value) &&
!RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
.hasMatch(value)) {
return getSCurrent('Invalid email');
}
//us phone: ^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$
// or: ^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$
//ca:^\([1-9]\d\d\)\d\d\d-\d\d\d\d$ 或 ^\([1-9][0-9][0-9]\)[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$ 或^\([1-9]\d{2}\)\d{3}-\d{4}$
if (item[gType] == gPhone &&
!isNull(value) &&
!RegExp(r"^\([1-9]\d{2}\)\d{3}-\d{4}$").hasMatch(value)) {
return getSCurrent('Invalid phone');
}
if (item[gType] == '$gEmail,$gPhone' &&
!isNull(value) &&
!RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
.hasMatch(value) &&
!RegExp(r"^\([1-9]\d{2}\)\d{3}-\d{4}$").hasMatch(value)) {
return getSCurrent('Invalid email or phone');
}
//post code canada: ^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$
//post code us: ^[0-9]{5}([- /]?[0-9]{4})?$
//url:((http|ftp|https):\/\/)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(\/[a-zA-Z0-9\&%_\.\/-~-]*)?
if (item[gType] == gUrl &&
!isNull(value) &&
!RegExp(r"^((http|ftp|https):\/\/)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(\/[a-zA-Z0-9\&%_\.\/-~-]*)?")
.hasMatch(value)) {
return getSCurrent('Invalid url');
}
if (item[gMinLength] != null &&
item[gMinLength] != '0' &&
!isNull(value) &&
value.toString().length < item[gMinLength]) {
return getSCurrent(
"$gMininput{${item[gMinLength]}}{${(isNull(item[gUnit]) ? gCharacter : item[gUnit])}}");
}
if (item[gLength] != null &&
item[gLength] != '0' &&
!isNull(value) &&
value.toString().length > item[gLength]) {
return getSCurrent(
"$gMaxinput{${item[gLength]}}{${(isNull(item[gUnit]) ? gCharacter : item[gUnit])}}");
}
return '';
}