1 <HTML> 2 3 <HEAD> 4 5 <TITLE>JavaScript Example: RegExp object</TITLE> 6 7 <SCRIPT LANGUAGE="JavaScript"> 8 9 function checkInput() { 10 var valid = true; 11 // Check SSN: 12 var ssn = document.myForm.ssn.value; 13 if ( !isSSN( ssn ) ) { 14 window.alert( "invalid SSN:\n" + ssn ); 15 valid = false; 16 } 17 // Check Phone: 18 var phone = document.myForm.phone.value; 19 if ( !isPhone( phone ) ) { 20 window.alert( "invalid phone number:\n" + phone ); 21 valid = false; 22 } 23 return valid; 24 } 25 26 function isSSN( str ) { 27 return true; // dummy method 28 } 29 30 function isPhone( str ) { 31 return true; // dummy method 32 } 33 34 </SCRIPT> 35 36 <SCRIPT LANGUAGE="JavaScript1.2"> 37 38 // A simple pattern: 39 function isSSN( str ) { 40 // matches 999999999 or 999-99-9999 41 var regexp = /^(\d{9}|\d{3}-\d{2}-\d{4})$/; 42 return regexp.test( str ); 43 } 44 45 // Another simple pattern: 46 function isPhone( str ) { 47 // matches 9999999999, 999-999-9999, or (999) 999-9999 48 var regexp = /^(\d{10}|\d{3}-\d{3}-\d{4}|\(\d{3}\) \d{3}-\d{4})$/; 49 return regexp.test( str ); 50 } 51 52 // A more sophisticated pattern: 53 function isPhone( str ) { 54 // matches (999)-999-9999, (999) 999-9999, (999)999-999, etc. 55 var regexp = /^((\((\d{3})\)|(\d{3}))[- ]?)?(\d{3})[- ]?(\d{4})$/; 56 // exec() returns an array: 57 if ( regexp.exec( str ) ) { 58 // one of $3 or $4 will be null: 59 window.document.myForm.phone.value = 60 RegExp.$3 + RegExp.$4 + RegExp.$5 + RegExp.$6; 61 return true; 62 } 63 return false; 64 } 65 66 // Exercise: Rewrite isSSN(). 67 68 </SCRIPT> 69 70 </HEAD> 71 72 <BODY BGCOLOR="#FFFFFF"> 73 74 <FORM NAME=myForm onSubmit="return checkInput()" 75 ACTION="http://osprey7.npac.syr.edu:3768/users-cgi/trscavo/prod/post-query"> 76 <TABLE> 77 <TR> 78 <TD ALIGN=RIGHT>Name:</TD> 79 <TD><INPUT TYPE=TEXT NAME=name></TD> 80 </TR> 81 <TR> 82 <TD ALIGN=RIGHT>SSN:</TD> 83 <TD><INPUT TYPE=TEXT NAME=ssn></TD> 84 </TR> 85 <TR> 86 <TD ALIGN=RIGHT>Phone:</TD> 87 <TD><INPUT TYPE=TEXT NAME=phone></TD> 88 </TR> 89 <TR> 90 <TD> </TD> 91 <TD ALIGN=CENTER><INPUT TYPE=SUBMIT 92 VALUE=Submit> <INPUT TYPE=RESET VALUE=Clear></TD> 93 </TR> 94 </TABLE> 95 </FORM> 96 97 </BODY> 98 99 </HTML>