`

正确理解--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和JSP两种技术。正则表达式是一种强大的文本处理工具,能够有效地匹配、查找、替换和验证各种模式。 首先,我们来看表单验证的基本概念。表单是网页中...

    javascript常用正则表达式大全

    javascript常用正则表达式大全,基本覆盖基本需求的正则表达式

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

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

    正则表达式验证金额格式

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

    JavaScript中使用正则表达式

    JavaScript中使用正则表达式的一些验证

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

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

    JavaScript 常用正则表达式

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

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

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

    精通 JavaScript正则表达式

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中执行模式匹配和搜索操作。它们在数据验证、文本替换和提取子字符串等任务中扮演着核心角色。 首先,正则表达式允许我们测试字符串是否符合特定...

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

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

    JavaScript验证正则表达式大全

    JavaScript中的正则表达式是用于文本模式匹配的强大工具,它在数据验证、字符串处理等方面有着广泛的应用。在JavaScript中,正则表达式可以用来检查字符串是否符合特定的格式,例如邮箱地址、电话号码、身份证号等。...

    JavaScript&正则表达式

    JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&...

    常用Javascript正则表达式汇总

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

    JavaScript正则表达式.ppt

    了解正则表达式概念 掌握正则表达式的语法 熟练掌握正则表达式在JavaScript中的应用

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

    每种语言虽然都支持正则表达式,但其语法和行为可能略有差异,因此验证器是一个极好的辅助工具,确保你的正则表达式能在目标语言中正常工作。 "依赖点Net2.0"表明这个验证器是基于.NET Framework 2.0开发的,这意味...

Global site tag (gtag.js) - Google Analytics