JavaScript Bible, Gold Edition part 132. This book will bring programmers and non-technical professionals, including casual programmers and scripters, painlessly up to speed on all aspects of mastering JavaScript. Key topics include programming fundamentals, JavaScript language elements and how to use them effectively, and how to easily and efficiently add powerful new functionality to HTML documents and Java applets. | 1158 Part V Putting JavaScript to Work i sNumber function returns false. But because isNumber returns true when the value is a number I switch the condition to test for the opposite results of the isNumber function by negating the function name preceding the function with the Boolean NOT operator . This operator works only with a value that evaluates to a Boolean expression which the isNumber function always does. The final test for being within the desired range works on the same basis as isNumber using the Boolean NOT operator to turn the results of the inRange function into the method that works best for this sequence. Finally if all validation tests fail to find bad or missing data the entire i sValid function returns true. The statement that calls this function can now proceed with processing ensured that the value entered by the user will work. There is one additional point worth reinforcing especially for newcomers. Although all these functions seem to be passing around the same input string as a parameter notice that any changes made to the value such as converting it to a string or number are kept private to each function. These subfunctions never touch the original value in the calling function they work only with copies of the original value. Therefore even after the data validation takes place the original value is in its original form and ready to go. Date and Time Validation You can scarcely open a bigger can of cultural worms than when trying to program around the various date and time formats in use around the world. If you have ever looked through the possible settings in your computer s operating system you can begin to understand the difficulty of this issue. Trying to write JavaScript that accommodates all of the world s date and time formats for validation is an enormous if not wasteful challenge. It s one thing to validate that a text box contains data in the form xx xx xxxx but there are also valid value concerns that can get very messy on an