Changes

Removing Special Characters

1,697 bytes added, 14:58, 14 July 2014
See Also
{{JavaScript Syntax}}The following technique can be used to prevent a user from entering special characters in designated form fields[[Custom Fields]].<br>
Special characters can cause problems, particularly when the data is exported to other applications.<br>
==Procedure:==
Include the following code in the '''HTML Tag box ''' of the [[Custom Fields|custom field]] you wish to restrict:
onchange="javascript:this.value=this.value.replace(/['''''character setSearch Expression''''']/g'''flag''',' '''replacement characterNew String''' ');" where *'''Search Expression''' specifies a string value to find.*'''New String''' specifies the replacement string.*'''flag ''' is a command line switch used to control outcome of the replace operation.
where '''character set''' defines which characters you want to remove, and '''replacement character''' defines what you want the special characters replaced with.
If you want the replacement to happen actively while the user is typing into the field use ''onKeyup'' instead of ''onChange''.
==Options==
For Character set Search Expression you can use* \W= Matches any character that is '''not''' a character from the basic Latin alphabet, an integer, or the underscore.* \w = Matches any alphanumeric character from the basic Latin alphabet, including the underscore. Equivalent to [A-Za-z0-9_]* \D = Matches any character that is '''not'''an integer.* \d = Matches all integers. Equivalent to [0-9]* \0 = NULL character* \s = Matches a single white space character* [xyz]= A character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen. For example, [abcd] is the same as [a-d]. They match the 'b' in "brisket"and the 'c' in "ache". :* Any individual character can be specified within the square brackets except double quote " which has special meaning.:* If you wish to include the backslash \dor closing square bracket ] you must precede them with a backslash (the first backslash tells the system to read the next character but not interpret it. See Example 2 below).  For Flag the following options are available:* g = global match * i = ignore case   Using ''onChange'' will replace the characters as soon as the user clicks away from current field, or hits Save.<br>Using ''onKeyup'' will replace the characters as soon as they are typed.  
==Examples==
'''1. To remove all characters that aren't part of the basic Latin alphabet and 0-9 (such as . , & ; : ~ ! @ # $ % ^ & * ( ) + " ' <u>including the space key</u>) and immediately replace them with an underscore (_):  onkeyup="this.value=this.value.replace(/[\W]/g,' characters _');"  2. The following code will look for # [ $ ] and \ and replace them with an underscore (_) actively while typing once the user has clicked away from the textfield:  onchange="this. value=this.value.replace(/[#[$\]\\@]/g,'_');" '''Note''': if you also want to replace double quotes you must omit the double quotes around the javascript statement::''onchange=javascript:this.value=this.value.replace(/['@#&"]/g,'_');''If you want to replace double quotes with a single quote use this::''<prenowiki>onkeyup="javascript:this.value=this.value.replace(/[\W"]/g,'_\'');"</prenowiki>'' 
3. To restrict user to only enter Integers write this code in the HTML tag box:
:'''2. After user has entered text and clicked away from the field, the following code will look for " and ' quotes and replace them with an underscore (_).<prenowiki>onchangeonkeyup="javascript:this.value=this.value.replace(/['\''&'\"'D]/g,'_');"</prenowiki>''
'''3. To restrict user to only enter Integer numbers write this code in the HTML tag box.<pre>onkeyup="javascript:this.value=this.value.replace(/See Also==* [[^\dSsescape|ssEscape]]/g,'');"</pre>
[[Category:Custom Fields]][[Category:JavaScript Examples]]
8,849
edits