`

正确理解--javascript中的正则表达式-您有多少误区?和表单验证

阅读更多

一、字符串的match()方法--正确理解

 

1、在javascript中,字符串可以调用match()方法来匹配字符串。

误区1:这里的match()方法和java中的matches()方法时完全不同的。

在java中是完全匹配,也就是匹配的字符串必须是整个都满足正则表达式。

但是:javascript中的match()是匹配子串,也就是该字符中,有满足正则表达式的就可以。

看代码:

<html>
<head>
<title>正则表达式</title>
<meta http-equiv="content-type" content="charset=gbk">
<script type="text/javascript">
var srt="1234562347";
var s=srt.match('234');
//如果整个匹配就不满足,但是匹配字串就满足
document.write(s);
</script>
</head>

<body>
</body>
</html>

 误区2:match()返回的是存放匹配结果的数组,而不是字符串,该数组元素就是匹配的子串,匹配到的话大小就为1

  var s=srt.match('234');

s是数组,打印他的长度可以知道是1,注意,如果我们直接输出一个数组,也是可以的他会将里面的元素用

,隔开,当只有一个元素的时候也就是没有,了。

注意:虽然它是匹配字串,但是他也是懒惰的,只会返回第一个匹配的字符串,

          我们可以通过查看数组的大小和元素来验证,下面的代码中,字符串有两个子字符串满足,但是返回的数组长度还是1。

看代码:

<html>
<head>
<title>正则表达式</title>
<meta http-equiv="content-type" content="charset=gbk">
<script type="text/javascript">
var srt="1234234567";
var s=srt.match('234');
//如果整个匹配就不满足,但是匹配字串就满足
document.write(s.length+"<br/>");
document.write(s+"<br/>");

</script>
</head>

<body>
</body>

误区3、表单验证

有了上面的理解,我们在做表单验证的时候,需要匹配整个字符串是不是满足?但是我们又没有整个匹配的方法,注意javascript没有提供全局匹配的方法。

我们得到匹配的子符串,这个时候拿来和原来的整个字符串比较,如果是相等,那么就满足,这里需要注意返回的变量是个数组,如果去比较返回值的长度和原来字符串的长度是不合理的。 

 

如果我们要得到所有满足的子串怎么办呢?下面介绍正则表达式对象。

 

二、正则表达式对象。

1、对象实例化的语法。

new RegExp(pattern, attributes);

参数

 

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

 

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

 

返回值

 

一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

 

如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

 

 

2、方法

方法 描述    
compile 编译正则表达式。    
exec 检索字符串中指定的值。返回找到的值,并确定其位置。    
test 检索字符串中指定的值。返回 true 或 false。    

 

主要介绍exec()方法误区:

其实这里的 exec()  方法和上面将的match()方法他的执行是一样的,也是懒惰的也只会执行一次,返回值

也是一个数组。

特点: RegExpObject 的 lastIndex 属性

正则表达式对象有lastIndex 属性,他保留了匹配到的字符串在它原来自己字符串中的位置,当这个正则表达式对象再一次调用exec() 方法的时候,该方法就会从这个位置之后去查找,如果没有匹配的就会返回null

 

解决问题:现在就可以得到所有满足的子串了。

看代码:

<html>
<head>
<meta http-equiv="content-type" content="charset=gbk">
<title>正则表达式 </title>
<script type="text/javascript">
//语法new RegExp(pattern, attributes);
var reg= new RegExp('\\b\\d{1,3}\\b','g');

var array= new Array();
var i=0;
//这里有三个满足的子串
array[0]=reg.exec('11 222 1');

while(array[i]!=null){
i++;
array[i]=reg.exec('11 222 1');

}
document.write("数组"+array+"<br/>");
</script>

</head>

<body>

</body>

</html>

 

 

 

 

2
1
分享到:
评论

相关推荐

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

    比较实用的javascript做的表单验证,验证的表单域包括用户名、密码、密码确认、密码提示问题、邮箱、手机号码、身份证。表单域基本通过获得焦点显示...提交表单先进行必填项不能为空验证,再进行正则表达式匹配验证。

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

    ### JavaScript正则表达式在表单验证中的应用详解 在Web开发中,表单验证是确保数据质量和用户体验的重要环节。JavaScript正则表达式提供了一种强大的工具,用于前端数据校验,确保用户输入的数据格式正确无误。...

    JavaScript 数据校验 正则表达式 示例代码

    正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则...

    JavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全.txt

    在JavaScript中,正则表达式被广泛应用于表单验证、数据清洗和文本解析等场景。 ### 常用正则表达式示例 #### 验证中文字符 - **正则表达式**: `[\u4e00-\u9fa5]` - **应用场景**: 用于验证字符串中是否包含中文...

    正则表达式列举 代码 项目中直接使用

    除了上述纯正则表达式的示例,文件还包含了JavaScript事件处理函数中的正则应用案例,这些函数用于限制输入字段的字符类型,例如只允许中文、全角字符或数字输入,以及验证字符串中是否存在非ASCII字符。 这些正则...

    表单验证(用到正则表达式)

    本主题主要关注使用正则表达式进行表单验证,涉及到JavaScript和JSP两种技术。正则表达式是一种强大的文本处理工具,能够有效地匹配、查找、替换和验证各种模式。 首先,我们来看表单验证的基本概念。表单是网页中...

    JavaScript常用正则表达式

    在JavaScript中,正则表达式可以用来验证用户输入,例如检查邮箱地址的有效性或手机号码的格式。以下是一些JavaScript中常见的正则表达式及其应用: 1. 邮箱验证: ```javascript const emailRegex = /^[a-zA-Z0-...

    正则表达式(基本包含所有验证的正则)

    ### 正则表达式知识点详解 ...本文通过多个具体的示例介绍了正则表达式的使用方法及其应用场景,希望能帮助读者更好地理解和掌握这一工具。在未来的工作中,合理地运用正则表达式可以极大地提高工作效率和质量。

    正则表达式验证金额格式

    在本场景中,我们关注的是如何使用正则表达式来验证金额格式。金额格式通常要求精确到小数点后两位,并且可能包含正负号。下面将详细介绍如何构建一个适用于这种需求的正则表达式。 首先,让我们了解一个基本的正则...

    常用的javascript基于正则表达式的文本框验证代码

    JavaScript是一种广泛应用于网页和网络应用...通过以上内容,你应该对使用JavaScript和正则表达式进行文本框验证有了深入的理解。在实际项目中,根据具体需求调整和优化验证规则,确保用户输入的数据既安全又符合预期。

    JavaScript 常用正则表达式

    JavaScript中的正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串。它们在编程中扮演着至关重要的角色,特别是在数据验证、搜索和提取信息等方面。在这个"JavaScript常用正则表达式"的资源中,...

    JavaScript--正则表达式

    ### JavaScript中的正则表达式详解 #### 正则表达式概念 正则表达式(Regular Expression)是一种在字符串中寻找特定字符或字符集的强大工具。...希望本文能够帮助你更好地理解和运用JavaScript中的正则表达式功能。

    正则表达式必知必会v_1.0.pdf

    正则表达式的语法比较容易理解,但学习正则表达式的主要困难在于如何灵活运用这些规则来达到查找和替换的目的。 匹配单个字符 在正则表达式中,可以使用句点(.)来匹配任意单个字符。句点在正则表达式中被称为元...

    常用的JavaScript验证正则表达式.txt

    本文将详细介绍一系列常用的JavaScript正则表达式及其应用场景,帮助开发者更好地理解和应用这些表达式。 #### 二、知识点详解 ##### 1. 验证汉字 - **正则表达式**: `[\u4e00-\u9fa5]` - **应用场景**: 当需要...

    Javascript经典正则表达式

    ### JavaScript经典正则表达式知识点解析 #### 一、概述 正则表达式是一种功能强大的文本处理工具,...以上是对题目描述中正则表达式知识点的详细解释与分析,希望能帮助理解JavaScript中的正则表达式及其应用场景。

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

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

    常用Javascript正则表达式汇总

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配...

    正则表达式验证表单

    下面将根据提供的代码示例,详细介绍如何使用JavaScript中的正则表达式来实现常见表单字段的有效性验证。 #### IP地址验证 IP地址是一种用于标识互联网上主机的标准格式。IPv4地址通常由四个0到255之间的数字组成...

    javaScript正则表达式讲解用ppt

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

Global site tag (gtag.js) - Google Analytics