JS字符串对象和正则表达式

本文详细介绍了JavaScript中字符串对象和字符串字面量的区别,以及提供了多种字符串方法的使用示例。同时,文章深入探讨了正则表达式的构造、匹配规则及其在文本模式检测中的强大应用。通过具体实例,读者可以掌握如何利用正则表达式进行复杂的数据匹配与处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符串对象:

创建字符串对象有:String对象和字符串字面量2种方式。

var mystring =new String(“myStr”);

或者

var mystring=”myStr”;

String对象和字符串字面量之间的区别是:普通文本字符串的值就是它本身,可以直接与其他字符串比较;而String对象却不是值本身

 

方法:

(这些方法转载于)http://www.jb51.net/article/29547.htm

 

至于方法,有很多时候感觉在计算机中,你只要敢想,很多方法基本都有的。基本人家都想到了,有现成的。对搞硬件出身的人来讲,这个有点不可思议哈。

 

1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。

strObj.charCodeAt(index)

说明:

index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。

如果指定位置没有字符,将返回NaN。

例如:

var str ="ABC";

str.charCodeAt(0);

结果:65

2、fromCharCode方法从一些Unicode字符串中返回一个字符串。

String.fromCharCode([code1[,code2...]])

说明:

code1,code2...是要转换为字符串的Unicode字符串序列。如果没有参数,结果为空字符串。

例如:

String.fromCharCode(65,66,112);

结果:ABp

3、charAt方法返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。

strObj.charAt(index)

说明:

index想得到的字符的基于零的索引。有效值是0与字符串长度减一之间的值。

例如:

var str ="ABC";

str.charAt(1);

结果:B

4、slice方法返回字符串的片段。

strObj.slice(start[,end])

说明:

start下标从0开始的strObj指定部分其实索引。如果start为负,将它作为length+start处理,此处length为字符串的长度。

end小标从0开始的strObj指定部分结束索引。如果end为负,将它作为length+end处理,此处length为字符串的长度。

例如:

012345

var str ="ABCDEF";

str.slice(2,4);

结果:CD

5、substring方法返回位于String对象中指定位置的子字符串。

strObj.substring(start,end)

说明:

start指明子字符串的起始位置,该索引从0开始起算。

end指明子字符串的结束位置,该索引从0开始起算。

substring方法使用start和end两者中的较小值作为子字符串的起始点。如果start或end为NaN或者为负数,那么将其替换为0。

例如:

012345

var str ="ABCDEF";

str.substring(2,4);// 或 str.substring(4,2);

结果:CD

6、substr方法返回一个从指定位置开始的指定长度的子字符串。

strObj.substr(start[,length])

说明:

start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。

length在返回的子字符串中应包括的字符个数。

例如:

012345

var str ="ABCDEF";

str.substr(2,4);

结果:CDEF

7、indexOf方法放回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

strObj.indexOf(substr[,startIndex])

说明:

substr要在String对象中查找的子字符串。

startIndex该整数值指出在String对象内开始查找的索引。如果省略,则从字符串的开始处查找。

例如:

01234567

var str ="ABCDECDF";

str.indexOf("CD",1); // 由1位置从左向右查找123...

结果:2

8、lastIndexOf方法返回String对象中字符串最后出现的位置。如果没有匹配到子字符串,则返回-1。

strObj.lastIndexOf(substr[,startindex])

说明:

substr要在String对象内查找的子字符串。

startindex该整数值指出在String对象内进行查找的开始索引位置。如果省略,则查找从字符串的末尾开始。

例如:

01234567

var str ="ABCDECDF";

str.lastIndexOf("CD",6);// 由6位置从右向左查找...456

结果:5

9、search方法返回与正则表达式查找内容匹配的第一个字符串的位置。

strObj.search(reExp)

说明:

reExp包含正则表达式模式和可用标志的正则表达式对象。

例如:

var str ="ABCDECDF";

str.search("CD");// 或 str.search(/CD/i);

结果:2

10、concat方法返回字符串值,该值包含了两个或多个提供的字符串的连接。

str.concat([string1[,string2...]])

说明:

string1,string2要和所有其他指定的字符串进行连接的String对象或文字。

例如:

var str ="ABCDEF";

str.concat("ABCDEF","ABC");

结果:ABCDEFABCDEFABC

11、将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

strObj.split([separator[,limit]])

说明:

separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。

limit该值用来限制返回数组中的元素个数。

例如:

var str = "AABB CC DD EE FF";

alert(str.split("",3));

结果:

AA,BB,CC

12、toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。

例如:

var str ="ABCabc";

str.toLowerCase();

结果:abcabc

13、toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。

例如:

var str ="ABCabc";

str.toUpperCase();

结果:ABCABC



2.正则表达式

正则表达式是个强大的工具,用好了感觉太厉害了


正则表达式是用于检测数据匹配的文本模式,JS构造reg对象可以用:

表达式模式和RegeXP构造式两种方式:

使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flags"])。
使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]。


g是全局标志。如果设置了这个标志,对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。如果不设置这个标志,则仅搜索和替换最早匹配的内容。
i是忽略大小写标志。如果设置了这个标志,进行匹配比较时,将忽略大小写。
m是多行标志。如果不设置这个标志,那么元字符“^”只与整个被搜索字符串的开始位置相匹配,而元字符“$”只与被搜索字符串的结束位置相匹配。如果设置 了这个标志,“^”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行首)相匹配,而“$”还可以与被搜索字符串中的“\n”或“\ r”之后的位置(即下一行的行尾)相匹配。


有区别的是:

:要匹配str = "\?" 这个字符串的时候,要加个\

eg:

    var str = "\?";  

    alert(str);//只会输出?  

    var re = /\?/;//将匹配?  

    alert(re.test(str));//true  

    re = new RegExp("\?");//出错,因为这相当于re = /\?/  

    re = new RegExp("\\?");//正确,将匹配?  

alert(re.test(str));//true  

 

test 返回 Boolean,查找对应的字符串中是否存在模式。

exec 查找并返回当前的匹配结果,并以数组的形式返回,如果不存在模式则返回空

match和exec很像,都返回匹配到的内容,只是match是字符串的方法;

 

str.match(reg)

reg.exec(str)

reg.test(str)

 


正则表达式主要内容:

理解4个符号:

 []  匹配元素

{} 匹配次数

 ^  $  代表开始&结束字符

下面是正则表达式中的预定义类 

 

 

代码  等同于                  匹配 

.     IE[^\n],其它[^\n\r]  匹配除换行符之外的任何一个字符 

\d    [0-9]                   匹配数字 

\D    [^0-9]                  匹配非数字字符 

\s    [ \n\r\t\f\x0B]         匹配一个空白字符 

\S    [^ \n\r\t\f\x0B]        匹配一个非空白字符 

\w    [a-zA-Z0-9_]            匹配字母数字和下划线 

\W    [^a-zA-Z0-9_]           匹配除字母数字下划线之外的字符

量词(下表量词单个出现时皆是贪婪量词

 

代码  描述 

*     匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 等价于{0,}。 

+     匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"等价于 {1,}。 

?     匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 等价于 {0,1}。 

{n}   n 是一个非负整数。匹配确定的 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 

{n,}  n 是一个非负整数。至少匹配次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o'o{1,}' 等价于 'o+''o{0,}' 则等价于 'o*'。 

{n,m} m 和 均为非负整数,其中n <= m。最少匹配 次且最多匹配 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。


常用的一些JS验证:

http://www.cnblogs.com/kentico/archive/2010/09/06/1819660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值