http://www.regular-expressions.info/javascriptexample.html
Regulare expressions in java script
>> Friday, March 17, 2006 4:46:36 PM - Comments by satya
satya - 6/1/2014 8:51:15 PM
standard regular expression patterns for numbers
standard regular expression patterns for numbers
Search for: standard regular expression patterns for numbers
satya - 6/1/2014 8:56:33 PM
regular expression pattern library for common types
regular expression pattern library for common types
Search for: regular expression pattern library for common types
satya - 6/1/2014 9:02:29 PM
Here is what I seem to have done before. some sample code
//************************************************
// An internal function used by regexp support
//************************************************
function createFieldType(fieldTypeName, regExp, fieldMessage )
{
this.fieldTypeName = fieldTypeName;
this.regExp = new RegExp(regExp);
this.fieldMessage = fieldMessage;
return this;
}
function createTypeArray()
{
typeArray = new Array();
typeArray.arzCode = new createFieldType("arzCode","^\\w{6}$","ARZ Code is alphanumeric and 6 characters wide");
typeArray.scac = new createFieldType("scac","^\\w{0,4}$","ARZ Code is alphanumeric and 6 characters wide");
return typeArray;
}
function validateField(fieldObj, inFieldType)
{
fieldValue = fieldObj.value;
if (fieldValue == "") return new Boolean(true);
var fieldType = typeArray[inFieldType];
if (fieldType.regExp.test(fieldValue) == false)
{
line1 = "You have typed : '" + fieldValue + "' for " + inFieldType;
line2 = fieldType.fieldMessage;
alert(line1 + "\n" + line2);
fieldObj.focus();
return new Boolean(false);
}
return new Boolean(true);
}
//************************************************
// Validate field content based on pre-defined fieldtypes.
//
// inputs: form object
// comma separated fieldNameAndType strings
// returns: true/false
// ex: validateForContent(thisForm,"field1|field1Type,field2|field2Type")
//************************************************
function validateForContent(form,fieldNames)
{
if (fieldNames == "")
{
return true;
}
fieldNameArray = fieldNames.split(",");
for(i=0;i<fieldNameArray.length;i++)
{
fieldNameAndType = fieldNameArray[i];
// Get field name and type
fieldNameAndTypeArray = fieldNameAndType.split("|");
fieldName = fieldNameAndTypeArray[0];
fieldType = fieldNameAndTypeArray[1];
// Get field object & value
fieldObj = eval("form." + fieldName );
if (validateField(fieldObj,fieldType) == false)
{
return false;
}
}
return true;
}
satya - 6/1/2014 9:17:26 PM
A float that has to have a decimal point
^[-]?\d+\.\d+$
satya - 6/1/2014 9:20:21 PM
An integer positive or negative
^[-]?\d+$
satya - 6/1/2014 9:21:07 PM
Use the regex test method to match the exact input
Use the carot (^) and the end symbol $ to delimit your pattern.
satya - 6/1/2014 9:24:12 PM
Here is a fraction format
^[-]?\d+\/\d+$
satya - 6/1/2014 9:28:20 PM
what they allow and not allow
//integer format good:
123, 3, 5, 0023, 2300, -123, -5
//integer format bad:
2.0 0.2 -.3 34. 2.00 2.
//decimal format good:
2.0 2.5 0.345 -0.256
//decimal format bad:
2..1, .3, -.3, 234, 2/5, -2/3,
//fraction format good
2/5, -2/5, 232/550
//fraction format bad
2//5, /5, /.5, 2.5/2.3, 2.5/3
satya - 6/1/2014 9:35:51 PM
Example
function testTextAnswerFormat(answer)
{
//0.23, -0.23
//won't allow -.23 or .23 or 0..23
var floatFormat = new RegExp("^[-]?\d+\.\d+$");
//23, -1, 000, 023
//wont allow decimals: 0.23
var intFormat = new RegExp("^[-]?\d+");
//Example: 8/12, -8/12
//wont allow: hast to have the / char
//won't allow: floats, ints or 8//9 etc.
var fractionFormat = new RegExp("^[-]?\d+\/\d+$");
if (intFormat.test(answer) == true)
{
//this is an int
return true;
}
if (floatFormat.test(answer) == true)
{
//this is a float
//You can further validate things like 0000.0000
return true;
}
if (fractionFormat.test(answer) == true)
{
//this is a fraction: 8/12
//you can further validate things like 008/0 or 008/0045
return true;
}
return false;
}
satya - 6/1/2014 9:36:43 PM
You can optimize the above code with function objects
where you can avoid the newing of regex objects multiple times.
satya - 6/1/2014 9:41:11 PM
You can also use groups in the regular expression
to further evaluate the portions of the number.
satya - 6/2/2014 10:00:46 AM
Here is a list of examples and standard formats
satya - 6/2/2014 10:19:42 AM
Beware of the need for double backslashes
var floatFormat = new RegExp("^[-]?\\d+\\.\\d+$");
//when all I needed was
^[-]?\d+\.\d+$
satya - 6/2/2014 10:22:17 AM
I could have done it this way
var intFormat = /^[-]?\d+$/;
//instead of
var intFormat = new RegExp("^[-]?\\d+$");
//Note the double backslashes
satya - 6/2/2014 10:25:29 AM
So the previous testTextAnswerFormat will not work. Corrected one here
function testTextAnswerFormat(answer)
{
//0.23, -0.23
//won't allow -.23 or .23 or 0..23
//var floatFormat = new RegExp("^[-]?\\d+\\.\\d+$");
var floatFormat = /^[-]?\d+\.\d+$/;
//23, -1, 000, 023
//wont allow decimals: 0.23
//var intFormat = new RegExp("^[-]?\\d+$");
var intFormat = /^[-]?\d+$/;
//Example: 8/12, -8/12
//wont allow: hast to have the / char
//won't allow: floats, ints or 8//9 etc.
//var fractionFormat = new RegExp("^[-]?\\d+\\/\\d+$");
var fractionFormat = /^[-]?\d+\/\d+$/;
alert("Testing value:" + answer);
if (intFormat.test(answer))
{
//this is an int
alert("int");
return true;
}
if (floatFormat.test(answer) == true)
{
//this is a float
//You can further validate things like 0000.0000
alert("float");
return true;
}
if (fractionFormat.test(answer) == true)
{
//this is a fraction: 8/12
//you can further validate things like 008/0 or 008/0045
alert("fraction");
return true;
}
return false;
}