`
caniggia1986
  • 浏览: 151704 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用JavaScript正则表达式验证

阅读更多
/** regexp-validate-data.js **/
function anyChar(str) {
    /* Verify at least one nonspace character
     *    or string of characters
     * Return boolean
     */
    return /\S+/.test(str);
}//eof - anyChar

function anyWord(str) {
    /* Verify at least one word character
     *        or string of word characters
     *        a word character is alpha numeric or underscore
     * Return boolean
     */
    return /\w+/.test(str);
}//eof - anyWord

function any3letters(str) {
    /* At least 3 consecutive letters anywhere in str
     *    case insensitive
     * Return boolean
     */
    return /[a-z]{3}/i.test(str);
}//eof - any3letters

function any10Char(str) {
    /* Verify exactly 10 nonspace character
     * Return string
     */
    if (/^\S{10}$/.test(str))
        return "Valid";
    else if (/\s/.test(str))
        return "Invalid space";
    else if (/^\S{11,}$/.test(str))
        return "Too long!";
    else
        return "Too short!";
}//eof - any10Char

function anyVar10(str) {
    /* Verify valid JavaScript variable name
     *     of exactly 10 characters
     * Return string
     */
    if (/^[a-z$_]\w{9}$/i.test(str))
        return "Valid";
    else if (/^[^a-z$_]/i.test(str))
        return "First Char Not Alpha!";
    else if (/^[a-z$_]\W/i.test(str))
        return "Invalid Character!"
    else if (/^\w{11,}$/.test(str))
        return "Too long!";
    else
        return "Too short!";
}//eof - anyVar10

function anyClass5(str) {
    /* Verify valid CSS class name of at least 5 characters
     * Return string
     */
    if (/^[a-z][a-z0-9\-]{4,}$/i.test(str))
        return "Valid";
    else if (/^[^a-z]/i.test(str))
        return "First Char Not Alpha!";
    else if (/[^a-z0-9\-]/i.test(str))
        return "Invalid Character!";
    else
        return "Too short!";
}//eof - anyClass5

function any4Words(str) {
    /* Verify at least 4 words can be 1 letter or digit
     * Return boolean
     */
    return /(\b[a-z0-9]+\b.*){4,}/i.test(str);
}//eof - any4Words

function three3lettered(str) {
    /* Verify at least 3 words having at least 3 characters
     * Return boolean
     */
    return /(\b[a-z0-9]{3,}\b.*){3,}/i.test(str);
}//eof - three3lettered

function varTest(data) {
    /* Verify valid JavaScript variable name any length
     * Return string
     */
    if (/^[a-z$_][\w$]*$/i.test(data))
        return "Valid JavaScript Name";
    else if (/^[^a-z$_]/i.test(data))
        return "Invalid First Character!";
    else
        return "Invalid Character!";
}//eof - varTest

function classTest(data) {
    /* Verify valid CSS class name any length
     * Return string
     */
    if (/^[a-z][a-z0-9\-]*$/i.test(data))
        return "Valid Class Name";
    else if (/^[^a-z]/i.test(data))
        return "Invalid First Character!";
    else
        return "Invalid Character!";
}//eof - classTest

function phpTest(data) {
    /* Verify valid PHP variable name any length
     * Return string
     */
    if (/^\$[\w]*$/i.test(data))
        return "Valid PHP/Perl Identifier";
    else if (/^[^$]/.test(data))
        return "Invalid First Character!";
    else
        return "Invalid Character!";
}//eof - phpTest

function validate_file(data){
    /* Parses filename and extension
     * for specified extenstions
     *
     * Returns Object
     */
    data = data.replace(/^\s*|\s*$/g, ""); //trims string

    return /^[a-z]\w*\.(asp|html|htm|shtml|php)$/i.test(data)
}//eof - validate_file

/* Three different email tests return boolean */
function isEmail1(data) {
    return /^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9]+$/i.test(data);
}//eof - isEmail1

function isEmail2(data) {
    return /^[\w.\-]+@[\w\-]+\.[a-zA-Z0-9]+$/i.test(data);
}//eof - isEmail2

function isEmail3(data) {
    //recommended expression: most complete
    return /^([\w]+)(\.[\w]+)*@([\w\-]+)(\.[\w]{2,4})(\.[a-z]{2})?$/i.test(data);
}//eof - isEmail3

function isSSN1(data) {
    /* Validate American SSN requiring dashes
     * Return boolean
     */
    return /^\d{3}-\d{2}-\d{4}$/.test(data);
}//eof - isSSN1

function isSSN2(data) {
    /* Validate American SSN dashes optional
     * Return boolean
     */
    return /^\d{3}-?\d{2}-?\d{4}$/.test(data);
}//eof -isSSN2

function isPhone1(data) {
    /* Validate American phone number: (123) 456-7890
     *    requiring parenthesis, space and dash
     * Return boolean
     */
    return /^\(\d{3}\) \d{3}-\d{4}$/.test(data);
}//eof - isPhone1

function isPhone2(data) {
    /* Validate American phone number: (123) 456-7890
     *    requiring parenthesis and dash
     *    optional space
     * Return boolean
     */
    return /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/.test(data);
}//eof - isPhone2

function isPhone3(data) {
    /* Validate American phone number: (123) 456-7890
     *    optional parenthesis, space and dash
     * Return boolean
     */
	return /^\(?([1-9]\d{2})(\) ?|[.-])?(\d{3})[.-]?(\d{4})$/.test(data);
}//eof - isPhone3

function isValidDate(date_string, format) {
	/* Validate string user entered as a date in 
	 * 1 of 6 formats
	 *	m/d/y		American month, day, year with 2 or 4 digit year
	 *	mm/dd/yy	Short American with 2 digit year
	 *	mm/dd/yyyy	Long American with 4 digit year
	 *	y/m/d		European year, month, day with 2 or 4 digit year
	 *	yy/mm/dd	European with 2 digit year
	 *	yyyy/mm/dd	European with 4 digit year
	 */
	var days = [0,31,28,31,30,31,30,31,31,30,31,30,31];
	var year, month, day, date_parts = null;
	var rtrn = false;

	/* JS Object/Hash table to branch for format */
	var decisionTree = {
		'm/d/y':{
			're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2}|\d{4})$/,
			'month': 1,'day': 2, year: 3
		},
		'mm/dd/yy':{
			're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2})$/,
			'month': 1,'day': 2, year: 3
		},
		'mm/dd/yyyy':{
			're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/,
			'month': 1,'day': 2, year: 3
		},
		'y/m/d':{
			're':/^(\d{2}|\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
			'month': 2,'day': 3, year: 1
		},
		'yy/mm/dd':{
			're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{1,2})$/,
			'month': 2,'day': 3, year: 1
		},
		'yyyy/mm/dd':{
				're':/^(\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
				'month': 2,'day': 3, year: 1
		}
	};

	var test = decisionTree[format]; //Get regexp, etc matching format
	if (test) {
		date_parts = date_string.match(test.re); //parse string
		if (date_parts) {
			year = date_parts[test.year] - 0;
			month = date_parts[test.month] - 0;
			day = date_parts[test.day] - 0;

			//Get number of days in month -- zero for invalid months
			test = (month == 2 && 
					isLeapYear() && 
					29 || days[month] || 0);

			rtrn = 1 <= day && day <= test; //Check day is in range; false for invalid months
		}
	}

	function isLeapYear() {
		return (year % 4 != 0 ? false : 
			( year % 100 != 0? true: 
			( year % 1000 != 0? false : true)));
	}
	return rtrn;
}//eof isValidDate

/* regexp-validate-numbers.js */
function uInteger(str) {
    /* Verify unsigned integer
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[0-9]+$/.test(str);
}//eof - uInteger

function uInteger2(str) {
    /* Verify unsigned integer
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^\d+$/.test(str);
}//eof uInteger2

function uInteger3to5(str) {
    /* Verify unsigned integer 3 to 5 digits
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^\d{3,5}$/.test(str);
}//eof - uInteger3to5

function sInteger(str) {
    /* Verify signed integer at least one digit
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?[0-9]+$/.test(str);
}//eof - sInteger

function sInteger2(str) {
    /* Verify signed integer at least one digit
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?\d+$/.test(str);
}//eof - sInteger2

function sInteger3to5(str) {
    /* Verify signed integer 3 to 5 digits
     *        ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?\d{3,5}$/.test(str);
}//eof - sInteger3to5

function isFloat(str) {
    /* Verify signed float decimal optional
     *    ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?[0-9]+(\.[0-9]+)?$/.test(str);
}//eof isFloat

function isFloat2(str) {
    /* Verify signed float decimal optional
     *    ignoring leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?\d+(\.\d+)?$/.test(str);
}//eof isFloat2

function isFloat3to5d0to3(str) {
    /* Verify float 3 to 5 digits, decimal max 3 digits
     *    if decimal point must have at least 1 decimal digit
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?\d{3,5}(\.\d{1,3})?$/.test(str);
}//eof - isFloat3to5d10to3

function isCurrency1(str) {
    /* Verify formatted currency optional $, no leading zero
     *    reguire comma separator, 2 digit decimal if any
     *    ignore leading and trailing spaces
     * Return boolean
     */
    str = str.replace(/^\s+|\s+$/g, '');
    return /^\$?[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{2})?$/.test(str);
}//eof - isCurrency1

function isCurrency2(str) {
    /*  Verify formatted currency optional $, no leading zero
     *    reguire comma separator, 2 digit decimal if any
     *    fillin missing decimal
     *    ignore leading and trailing spaces
     * Return string
     */
    str = str.replace(/^\s+|\s+$/g, '');
    if (/^\$?[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{0,2})?$/.test(str) ) {

        if (/\.[0-9]$/.test(str) ) {
            //needs trailing zero
            str += "0";
        }
        else if (/\.$/.test(str)) {
            //needs both trailing zeroes
            str += "00";
        }
        else if (!/\.[0-9]{2}$/.test(str) ) {
            //needs everything
            str += ".00";
        }
        return str;
    }
    else {
        return "Invalid";
    }
}//eof - isCurrency2

function isCurrency3(str) {
    /* Verify formatted currency optional $, no leading zero
     *    reguire comma separator, 2 digit decimal if any
     *    fillin missing decimal
     *    ignore leading and trailing spaces
     * Return string
     */
    str = str.replace(/^\s+|\s+$/g, '');

    if (/^[-+]?\$?[1-9]\d{0,2}(,\d{3})*(\.\d{0,2})?$/.test(str) ) {

        if (/\.\d$/.test(str)) {
            str += "0";
        }
        else if (/\.$/.test(str) ) {
            str += "00";
        }
        else if (!/\.\d{2}$/.test(str) ) {
            str += ".00";
        }
        return str;
    }
    else {
        return "Invalid";
    }
}//eof - isCurrency3
分享到:
评论

相关推荐

    JavaScript正则表达式迷你书

    本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和编程等方面深入讲解了JavaScript正则表达式的相关知识,适合需要进行字符串匹配、提取、验证等操作的读者学习。 第1章介绍了正则表达式字符匹配的...

    使用正则表达式验证一年的12个月份

    在实际应用中,通常会结合编程语言来使用这些正则表达式。例如,在JavaScript中,你可以用`test()`函数来验证输入: ```javascript const regex = /^(0?[1-9]|1[0-2])$/; // 或者更复杂的版本 const input = "05"; ...

    正则表达式验证金额格式

    下面是一段JavaScript代码示例,展示如何使用上述正则表达式验证输入: ```javascript function validateAmount(amountStr) { const regex = /^-?[0-9]+(\.[0-9]{1,2})?$/; return regex.test(amountStr); } ...

    jq非空验证,js正则表达式验证邮箱和手机号码

    JavaScript正则表达式是用于匹配字符串模式的强大工具。在验证邮箱和手机号码时,我们需要创建符合特定规则的正则表达式。对于邮箱验证,通常的正则表达式如下: ```javascript var emailRegex = /^[a-zA-Z0-9._%...

    正则表达式验证器,验证常用的编程语言的正则表达式

    "正则表达式验证器"是一个实用工具,它允许用户输入自定义的正则表达式,并通过提供测试用例来验证该表达式的正确性。 这个验证器特别适用于程序员,他们可能需要在多种不同的编程语言中使用正则表达式,如...

    javascript正则表达式表单验证大全

    以下是从标题、描述、标签以及部分内容中提取的关键知识点,详细解释了如何使用JavaScript正则表达式进行各种常见场景下的表单验证。 #### 用户名验证 正则表达式:`^[a-zA-Z][\w]{5,17}$` 该表达式确保用户名由...

    精通 JavaScript正则表达式

    在JavaScript中,创建正则表达式有两种方式:使用`RegExp`构造函数或正则表达式字面量。例如: ```javascript var re = new RegExp("a"); // 使用构造函数 var re = /a/gi; // 使用字面量,/g/ 表示全局匹配,/i/ ...

    javascript正则表达式综合练习

    这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则表达式的技能。通过链接访问(已提供但在此不展示)可以深入学习相关知识。 在JavaScript中,...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    使用正则表达式验证中文汉字输入

    在本主题中,“使用正则表达式验证中文汉字输入”着重讲解如何利用正则表达式来确保用户输入的数据仅包含合法的中文汉字。 首先,我们需要了解中文汉字在计算机中的表示方式。中文字符在Unicode编码中占据着一定的...

    JavaScript正则表达式迷你书(1.1版)_程序逻辑_

    **JavaScript正则表达式迷你书(1.1版)** 正则表达式是JavaScript中一个强大的工具,用于处理文本字符串,进行模式匹配和查找、替换等操作。它们在编程逻辑中扮演着至关重要的角色,尤其是在处理字符串数据时,...

    javascript正则表达式详解

    JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...

    javaScript 正则表达式详解

    JavaScript 正则表达式详解 JavaScript 中的正则表达式是指使用特殊字符来描述字符串模式的表达式。...JavaScript 中的正则表达式提供了强大的字符串匹配和操作能力,广泛应用于字符串处理和数据验证等领域。

    只验证数字和字母的正则表达式

    在提供的示例代码中,我们看到一个简单的登录页面,其中包含了一个名为 `AA` 的 JavaScript 函数,该函数用于验证用户输入的用户名是否符合上述正则表达式的规则。 ```javascript function AA() { var name = ...

    常用Javascript正则表达式汇总

    以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配Unicode范围内的中文字符,包括所有汉字。例如,如果你想在一个字符串中查找所有中文字符,可以...

    经典JavaScript正则表达式实战

    总结来说,JavaScript正则表达式在处理字符串、验证数据、文本处理等方面有广泛的应用。掌握正则表达式能够提高开发效率,解决实际问题。在实际应用中,正则表达式需要结合具体需求进行灵活编写和调整。

    JavaScript常用正则表达式

    在JavaScript中,我们可以使用`test()`方法来检查一个字符串是否匹配特定的正则表达式,例如: ```javascript let input = "example@email.com"; if (emailRegex.test(input)) { console.log("Valid email address....

    javaScript正则表达式讲解用ppt

    在JavaScript中,正则表达式被广泛应用于数据验证、文本处理和字符串操作等方面。 1. **正则表达式概念** - 正则表达式(Regular Expression)源自1956年美国数学家斯蒂芬的研究,用于描述一组字符串的共同特征。 ...

Global site tag (gtag.js) - Google Analytics