1 javascript 4 user input validation. 2 input validation one of the most useful applications of...

19
1 JavaScript 4 User Input Validation

Upload: daisy-copeland

Post on 29-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

1

JavaScript 4

User Input Validation

Page 2: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

2

Input Validation• One of the most useful

applications of JavaScript is input validation

• Scripts in the page can check that inputs conform to particular formats before sending them to the server

• This can make for a better user experience, save time and other resources

Validator checks format

User enters data

Server processes it

input

input

ok

not ok

"oops!"

Page 3: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

3

Rep. Ireland Mobile Numbers

• 08 + 3/5/6/7 + 7 digits• Irish mobiles start with

08 followed by either 3, 5, 6, 7 (088 is obsolete now), followed by 7 digits

Page 4: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

4

var mobilenum;var valid = new Boolean(true);mobilenum =prompt("Please enter your mobile phone number",

"0879996666");if ((mobilenum==null) || (mobilenum==""))

valid= false;if (mobilenum.length != 10)

valid=false;if (mobilenum.slice(0,2) != "08")

valid=false;var c = mobilenum.slice(2,3);if (! ((c=="3") || (c=="5") || (c=="6") || (c=="7")) )

valid=false;for (n=3;n<10;n++)

{c = mobilenum.slice(n,n+1);if ((c < "0") || (c > "9"))

valid=false;}

Page 5: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

5

Checksum• Very often 1 digit of an input is used to detect

errors• Imagine if the last digit of a phone number was

required to be the number of even digits• 0879996665• If someone made a mistake it might be

detected if the numbers didn’t add up• 0879996662 - something's wrong!• Checksums are not usually so simple and

typically applying a multiplier to some of the digits

Page 6: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

6

Credit Card Numbers

• The last digit of a 16-digit credit card number is a check sum

• It doesn't tell you if the number is valid, or the account has enough money

• But if the checksum is wrong it can't be correct

Page 7: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

7

Luhn Formula for Credit Cards

• Starting with the second last digit of the number, multiply every second digit by 2

• Add all the resulting digits, together with the unmodified digits, and the check sum

• If the resulting number is evenly divisible by 10 then the checksum is valid

Page 8: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

8

4 4 9 9 2 2 8 3 0 8 0 1 7 4 2 2

8 18 4 16 0 0 14 4

1+8 1+6 1+4

8 4 9 9 4 2 7 3 0 8 0 1 5 4 4 2

= 70 70 mod 10 = 0 so checksum is valid

Luhn Formula for Credit Cards

Page 9: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

9

Card Prefix Length

Visa 4 13 / 16

American Express

34 / 37 15

MasterCard 51- 55 16

Discover 6011 16

Diners Club 300-305 / 36 / 38 14

Page 10: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

10

• Every book has a unique number that identifies the publisher and other information

• The last digit of the ISBN is a MOD 11 checksum

International Standard Book Number ISBN

Page 11: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

11

ISBN 0 7 8 7 9 5 1 6 2 5

x 10 9 8 7 6 5 4 3 2 1

0 63 64 49 54 25 4 18 4 5

+ 286 MOD 11 = 0 so it's valid

Page 12: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

12

ISBN 1 5 6 4 7 8 2 1 4 X

x 10 9 8 7 6 5 4 3 2 1

10 45 48 28 42 40 8 3 8 10

+ 242 MOD 11 = 0 so it's valid

Note that MOD 11 can result in 10. So the last digit may be X = 10. (Roman numbers live!)

Page 13: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

13

Modulus Checksums

• In general the modulus chosen needs to be– Greater than the number digits– Greater than the range of any single digit

• Prime numbers work especially well• Random ISBN errors have 90% (10/11)

chance of being caught.

Page 14: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

14

R. Ireland PPS Numbers

• Every person working in the Republic of Ireland has a PPS number

• Children are now issued them at birth• Organizations that may request and store

them are specifically controlled by legislation

• The number is 7 digits followed by a checksum letter

Page 15: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

15

PPSN 6 0 5 9 9 2 2 H

x 8 7 6 5 4 3 2

48 0 30 45 36 6 4

Total = 169

169 MOD 23 = 8 = H

A B C D E F G H I J K L M N O P Q R S T U V W

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 0

Some woman in Ireland have PPS numbers identical to their husband's, but followed by a W. So there may be 2 letters - a check sum and a W. It is co-incidence that W is the 23rd letter. This W is for "wife". This somewhat sexist practice has been discontinued.

Page 16: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

16

• X04135981862• Convert first letter to a number (A=1, B=2, … Z=26)• Add up all the digits 24+0+4+1+3+5+9+8+1+8+6+2 =71• Add those together (as often as required)• 7+1 = 8• Final result will always be 8

Euro banknote serial numbers

Page 17: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

17

Finland's Sosiaaliturvatunnus or SOTU• DDMMYYSPPPC• DDMMYY - date• S is separator

– + for people born in 1800's– - for people born in 1900's– A for people born in 2000's

• PPP is a person number. Even for females an odd for males

• This means that at most 500 men can be born in Finland is any 1 day! (currently <100)

• C is checksum• Treat DDMMYYPPP as

a large number and MOD by 31

• MOD is mapped to a single character from 0123456789ABCDEFHJKLMNPRSTUVWXY

• So if MOD 31 is 15 checksum is E

You are not expected to know this for exam purposes

Page 18: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

18

Exercises

• Test ISBNs and random 10 digit numbers with the ISBN checksum

• Verify your PPSN checksum

• Verify your credit card checksum

• Write JavaScript code to validate ISBNs and PPSNs

Page 19: 1 JavaScript 4 User Input Validation. 2 Input Validation One of the most useful applications of JavaScript is input validation Scripts in the page can

19

Other Examples

• P.R. China (mod 11), UK, Italy (mod 26) all use checksums

• The U.S. and Canada share a numbering system, but only Canadian numbers use a checksum

• Many barcode systems use a checksum too• R. Ireland CAO student numbers use a

checksum but the method used is a secret