Using a regular expression, you need to return true if the number matches, otherwise false .
Wrote such code
//Logic for testing function isTrue(str) { if(telephoneCheck(str)) { return '<span style="color:#00ff00">OK - telephoneCheck("'+str+'") return true</span><br>'; } else { return '<span style="color:#ff0000">ERROR - telephoneCheck("'+str+'") return false (MUST BE true)</span><br>'; } } function isFalse(str) { if(telephoneCheck(str)) { return '<span style="color:#ff0000">ERROR - telephoneCheck("'+str+'") return true (MUST BE false)</span><br>'; } else { return '<span style="color:#00ff00">OK - telephoneCheck("'+str+'") return false</span><br>'; } } function TEST() { var retCode=''; retCode+=isTrue("555-555-5555"); retCode+=isTrue("1 555-555-5555"); retCode+=isTrue("1 (555) 555-5555"); retCode+=isTrue("5555555555"); retCode+=isTrue("555-555-5555"); retCode+=isTrue("(555)555-5555"); retCode+=isTrue("1(555)555-5555"); retCode+=isTrue("1 555 555 5555"); retCode+=isTrue("1 456 789 4444"); retCode+=isFalse("123**&!!asdf#"); retCode+=isFalse("55555555"); retCode+=isFalse("(6505552368)"); retCode+=isFalse("2 (757) 622-7382"); retCode+=isFalse("0 (757) 622-7382"); retCode+=isFalse("-1 (757) 622-7382"); retCode+=isFalse("2 757 622-7382"); retCode+=isFalse("10 (757) 622-7382"); retCode+=isFalse("27576227382"); retCode+=isFalse("(275)76227382"); retCode+=isFalse("2(757)6227382"); retCode+=isFalse("2(757)622-7382"); retCode+=isFalse("555)-555-5555"); retCode+=isFalse("(555-555-5555"); retCode+=isFalse("(555)5(55?)-5555"); retCode+=isFalse("555-555"); retCode+=isFalse("5555555"); retCode+=isFalse("1 555)555-5555"); document.getElementById('content').innerHTML = retCode; } <!DOCTYPE html> <html> <head> </head> <body> <script> function telephoneCheck(str) {//===!!!FixIt!!!=== var regex = /1?\s?[\s\(]?[0-9]{3}[\)\s\-]?\s?[0-9]{3}[\s\-]*[0-9]{4}[^0-9]/g; if (regex.test(str)) { return true; } return false; } </script> <input type=button value="TEST" onclick="TEST()"/> <div id='content'> </div> </body> </html> Not sure if the regular schedule is appropriate and looks confusing and not sure if you need to use test , maybe search or match .
In response, it is desirable to explain your regular season.
The fix function is marked with a FixIt comment.
The list of regular numbers used in the test
Good ones
"555-555-5555"
"1 555-555-5555"
"1 (555) 555-5555"
"5555555555"
"555-555-5555"
"(555) 555-5555"
"1 (555) 555-5555"
"1 555 555 5555"
"1 456 789 4444"
The bad
"123 ** & !! asdf #"
"55555555"
"(6505552368)"
"2 (757) 622-7382"
"0 (757) 622-7382"
"-1 (757) 622-7382"
"2 757 622-7382"
"10 (757) 622-7382"
"27576227382"
"(275) 76227382"
"2 (757) 6227382"
"2 (757) 622-7382"
"555) -555-5555"
"(555-555-5555"
"(555) 5 (55?) - 5555"
"555-555"
"5555555"
"1 555) 555-5555"
RegExp#test()is what you need, onlygshould be removed. Well, fix the regular season. - Wiktor Stribiżew