Hi Isomorphic,
I have this simple type I'm using for my eMail fields:
It's a simple email-address validation, which now fails for the ".berlin" TLD.
Of course I know the regex rants
but still, if the lists gets longer and I wanted to validate against the IANA list of domains, I need it to be case insensitive - and working in serverside Java and JavaScript.
In Java, this would be done like this (docs), or with the also supported modifier-parameter.
But this leads to this stack trace on the client (v10.1p_2016-08-26, FF26 Dev mode):
So my question is how to make this work in both environments, as JavaScript does not support inline modifiers?
My suggestion would be a modifier-attribute for type="regexp"-valdidators. This would work in Java and JavaScript.
I'm using 5.1 now, but will switch to 6.0 soon.
Thank you & Best regards
Blama
I have this simple type I'm using for my eMail fields:
Code:
<SimpleType name="emailType" inheritsFrom="text"> <validators> <validator type="regexp" expression="^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]{2}|[cC][oO][mM]|[oO][rR][gG]|[nN][eE][tT]|[eE][dD][uU]|[gG][oO][vV]|[mM][iI][lL]|[bB][iI][zZ]|[iI][nN][fF][oO]|[mM][oO][bB][iI]|[nN][aA][mM][eE]|[aA][eE][rR][oO]|[aA][sS][iI][aA]|[jJ][oO][bB][sS]|[mM][uU][sS][eE][uU][mM])$"> </validator> </validators> </SimpleType>
Of course I know the regex rants
Some people, when confronted with a problem, think
“I know, I'll use regular expressions.” Now they have two problems.
“I know, I'll use regular expressions.” Now they have two problems.
In Java, this would be done like this (docs), or with the also supported modifier-parameter.
Code:
expression="[B](?i)[/B]^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$"
Code:
11:44:14.760 [ERROR] [lms] 11:44:14.759:TMR9:WARN:Log:SyntaxError: invalid quantifier Stack from error.stack: isc.A.$74u.regexp.condition() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1378 [c]Validator.processValidator() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1440 Canvas.validateField() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:3637 Canvas.validateFieldAndDependencies() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:3623 FormItem.validate() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1082 FormItem._performValidateOnEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1239 FormItem.handleEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1237 FormItem.checkForEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1220 [c]Class.fireCallback() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:301 Timer._fireTimeout() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:1365 Timer.setTimeout/_6<() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:1362 com.smartgwt.client.core.JsObject$SGWT_WARN: 11:44:14.759:TMR9:WARN:Log:SyntaxError: invalid quantifier Stack from error.stack: isc.A.$74u.regexp.condition() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1378 [c]Validator.processValidator() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1440 Canvas.validateField() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:3637 Canvas.validateFieldAndDependencies() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:3623 FormItem.validate() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1082 FormItem._performValidateOnEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1239 FormItem.handleEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1237 FormItem.checkForEditorExit() @ lms/sc/modules/ISC_Forms.js?isc_version=v10.1p_2016-08-26.js:1220 [c]Class.fireCallback() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:301 Timer._fireTimeout() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:1365 Timer.setTimeout/_6<() @ lms/sc/modules/ISC_Core.js?isc_version=v10.1p_2016-08-26.js:1362 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:72) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:296) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:551) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:368) at java.lang.Thread.run(Unknown Source)
My suggestion would be a modifier-attribute for type="regexp"-valdidators. This would work in Java and JavaScript.
I'm using 5.1 now, but will switch to 6.0 soon.
Thank you & Best regards
Blama
Comment