ES标准规定了内置对象,浏览器厂商实现了这些对象以及API,11个:
Number String Boolean Array RegExp Date Math Error Function
Object Global全局对象(在浏览器中被替换为window,在正规的解析JS引擎中为Global)
今天就将写String字符串对象和RegExp正则表达式对象。
String对象
用于处理已有的字符块。主要用于计算字符串的长度,为字符串添加样式,寻找关键词。
创建String对象的语法:
new String( s );
String( s );
参数s是要存储在String对象中或转换成原始字符串的值。即String(元素),元素可以是数字、数
组等等,String对象可以将其转化为字符串属性。
String为多个字符组成的只读字符数组。数组可以随意修改原数组,但字符串只读字符数组,一旦
创建内容不可改变。两者都能用下标(length属性、for循环遍历、slice选区)访问每个元素、字符。只
要不会改变原字符串的方法都可以运用于字符串。
String对象的length属性声明了该字符串的字符数。str.length,与数组的区别为,数组的length是声
明数组的内元素的个数。
字符串常用API:
1、大小写的转换/英文: 需要一个返回值
str.toUpperCase( )大写
str.toLowerCase( )小写
2、获取指定位置的字符: str[ i ]
var char = str.charAt( i );
3、获取指定字符unicode码:
var unicode = str[ i ]charCodeAt( );
省略 i 则默认值0。
将unicode码转换为文字:
var char = String.fromCharCode(unicode);
4、往数组中添加元素:
str.push( ); 从尾部添加
str.unshift( ); 从头部添加
5、把一个字符串分割成字符串数组:
var arr = str.split(分隔符);
分隔符给空字符串,则将字符串中每个字符都分解成数组中的一个元素。
正则表达式 RegExp对象
正则表达式是对字符串执行模式匹配的强大工具。
封装一条正则表达式,提供了使用正则表达式进行查找和验证的API。
正则就是制定规则,s是空格,即空字符,w 一位字母数,d 一位数字, . 任意字符。
一位大写字母:[ A-Z ],小写[ a-z ],大小写:[ A-Za-z ],一位汉字:[ u4e00 - u9fa5]。
量词:专门规定一个位字符集出现次数的规则,量词需放在字符的后面。
1、有明确数量边界:
字符集{min,max}规定字符集最少出现min次,最多max次。
字符集{min,}规定最少min次,多之不限。
字符集{n}规定只能n次。
2、没有明确数量边界:字符集?(可有可无,最多一次) | 字符集 * (可有可无,最多无限)
| 字符集 + (至少一次,最多无限)。
语法:用变量来创建正则:
var reg = / 正则 / g ;
动态创建正则:
var reg = new RegExp( / 正则 / , "gi" );
正则还可以用数组来表示:数组 . join( "|" );
查询关键词 可用循环来寻找字符串中多个关键词的位置
1、查找一个固定的关键词出现的位置:
var i = str.indexOF("关键词");
2、专门找最后一个关键词的位置:
var i = str.lastIndexOf("关键词");
即从后向前搜索关键词。
3、var arr = str.match( / 正则 / ig);
.match查找关键词,返回关键词组成的数组,没有找到返回null。
默认只找到第一个,找到所有必须加上g。
4、找到所有关键词内容,又找到每个关键词的位置!
语法:var arr = reg.exec( 要查找的完整字符串,或者 / 正则 / )
返回值:本次查找找到的一个关键词及位置。
arr[ 0 ] : 关键词的内容 如果正则中有分组,arr[ n ] : 自动保存在第n个分组匹配的子内容。
arr[ 'index' ] : 当前关键词位置。
( arr = reg.exec(str) )! = null 则停止循环查找。
5、检查字符串是否完全满足正则表达式的要求!
只要是验证,reg中必须前加^后加串,要求从头到尾,都必须匹配。
var bool = reg . test( 待检测字符串 ) ;