RegExp类型于String类型简介

RegExp类型

概述

  • 正则表达式时什么

正则表达式(Regular Expression):由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。
正则表达式经常使用于在一段文本中搜索,匹配或替换特定形式的文本。如:词语出现频率统计,验证字符串是否符合邮箱格式,屏蔽一篇帖子中限制性的词语等正则表达式

  • 建立正则表达式

JavaScript中没有正则表达式数据类型,建立正则表达式的语句以下:
var expression =/pattern/attributes;
pattern参数:被称为模式,能够时任何简单或复杂的正则表达式,包含字符类,限定符,分组,向前查找已经反向应用。
attribures参数:被称为修饰符,用于代表正则表达式的行为。
##符号express

  • 直接量字符

正则表达式中的全部字母和数字都是按照字面含义进行匹匹厄的。JavaScript正则表达式语法也是支持非字母的字符匹配,这些字符须要经过反斜线()做为前缀进行转义。
O 匹配NULL字符,不要再这后面跟其余的小鼠
t匹配一个水平制表符。
n匹配一个换行符。
v 匹配一个垂直制表符。
R匹配一个回车符。
f匹配一个换页符。
xhh 匹配带有两位小数代码(hh)的字符
uhhh 匹配一个带有四位小数代码(hh)的字符数组

  • 字符类

将直接量字符单独放进方括号内就组成了字符类。一个字符类能够匹配它所包含的任意字符。因为某些字符类很是经常使用,JavaScript的正则表达式中,使用特殊转义字符表示他们。
[...] 一个字符集合。匹配放阔号任意字符。你可使用破折号
(-)来制定。因为某些字符范围。对于点
(.)和信号(*)这样的特殊字符再一个字符集中没有特殊的意义。
1 一个反向的字符集。
. (小数点)匹配除了换行符(n)以外的任何单个字符
w 匹配一个单子字符(字母,数字,或者下划线)。等价于[A-Za-z0-9]
W匹配一个非单字字符。
s匹配一个空白字符,包括空格,制表符,换页符和换行符。
S匹配一个非空白字符。
d匹配一个数字, 等价于【0-9】
D匹配一个非数组字符。等价于2;oracle

  • 重复

再JavaScript中的正则表达式用来描述任意多为的数字,或者描述由三个字母和一个数字构成的字符串时,可使用字符重复的标记。
{n,m} n和m都是正整数。匹配前面的字符至少n次,作多m次。若是n或者m是0那么能够或略这个值
{n}n是一个正整数,匹配了前面一个字符恰好发生了n次。
{n}n是一个正整数,匹配了有一个正整数,匹配了前面一个字符放生了n次或者更屡次。
? 匹配前面一个字符0或者1次和{0,1}有相同的效果。this

  • 匹配前面一个字符1次或者屡次,和{1,}有相同的效果。
  • 匹配签一个字符0或者屡次。

注意:‘*’ ‘?’能够匹配0个字符,容许什么都匹配编码

  • 选择,分组,引用

正则表达式包括指定选择项,子表达式分组和引用前一子表达式的特殊字符。
x|y 匹配‘x’或者‘y’。
(x) 匹配“x”而且记住匹配项。这个被叫作捕获括号。
(?.x) 匹配“x”可是不记住匹配项。这种被叫作非捕获括号。
n 是一个正整数,一个返回引用到最后一个于有n插入的正值表达式(counting left parentheses)匹配的副字符串。code

  • 指定匹配位置

正则表达式中的多个元素才可以匹配字符串的一个字符,这些元素称之为正则表达式的锚。由于他们将模式定位在搜索字符串的特定位置上。
^ 匹配输入的开始 。若是多行标识被设置为true,同时匹配换行后紧跟的字符
$ 匹配输入的结束,若是多行标识被设置为ture,同时会匹配换行以前紧跟的字符
b 匹配一个词的边界。一个词的边界就是一个词不被另一个次跟随的位置或者不是另一个词汇字符前边的位置。
B 匹配一个非单词的边界
X(?=y) 匹配‘x’仅仅当‘x’后面跟着‘y’。这种叫作正向确定查找。
x(?!y) 匹配‘x’仅仅当‘x’后面不跟着y,这个叫作正向否认查找。对象

  • 修饰符

正则表达式的修饰符,用于说明高级匹配的规则。修饰符是放在‘/’符号的后面的。JavaScript支持的三个修饰符。
i 不区分大小写
g 全局搜索
m 多行搜搜索引

  • 对象

建立RegExp对象
JavaScript能够经过引用类型RegExp建立正则表达式对象,语法以下:
var pattern =new RegExp(pattern,attributes);
参数:
pattern:被称之为模式,能够是任何简单或复杂的正则表达式,包含字符类,限制类,分组,向前查找以及反向引用。
attributes:被称之为修饰符,用于代表正则表达式的行为。ip

  • RegExp对象的属性

RegExp对象的属性以下:
global 只读 RegExp对象是否具备g修饰符。
ignorecase 只读RegExp对象是否具备i修饰符。
multiline 只读RegExp对象是否具备m修饰符。
lastindex 用于设置获取下次匹配的其实位置。
source 只读 返回模式匹配所使用的问题。
$1...$9 全局属性 指代最近一次搜索中某个子表达式匹配的问题。

  • RegExp对象的方法

RegExp对象的方法以下:
compile() 编译/从新编译正则表达式,将pattern转换为内部格式,加速执行速度。
exec() 检索字符串中指定的值。返回找到的值,并肯定其位置;影响lastindex属性的值。
test() 检索字符串指定的值。返回ture 或false;影响lastindex属性的值。

Strsing类型

概述

  • 字符串是什么

String类型是于原始类型string对应的包装类型。建立String对象以下代码:
var strObject = new String ('this is string');
string 类型于String 类型之间的区别:
使用typeof运算符,string 类型返回‘string’,String类型返回'object'。
String类型提供了不少属性和方法可使用。例如检索字符串,分割字符换行等操做

常见操做

  • 大小写转换

String对象提供以下放方法,用于大小写转换。
toUppercase() 把字符串转换为大写。
toLowercase() 把字符串转换为小写。
var =msg = 'Hello World';
var lowerMsg =msg.tolowercase();
var upperMsg =msg.toUppercase ();
console.log(msg);//Hello World
console.log(LoweMsg);//hello world
console.log(upperMsg);//HELLO WORLD

  • 获取指定位置的字符串

String对象提供以下方法。用于获取指定位置的字符。
charAr() 返回再指定位置的字符。
charCodeAt() 返回在指定的位置的字符的Unicode编码。
var str = 'HELLO WORLD';
console.log(str.charAt(2));//L
console.log(str.charCode(0));72

  • 检索字符串

String对象提供以下方法,用于检索字符串。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
lastindexOf()从后向前字符串。
var email ='tom@163@sohu.com';
console.log(email.indexOf('tom'));//0
console.log(email.indexOf('@',5))//7
console.log(email.lastIndexOf('@'))//7
console.log(smail.lastIndexOf('@',5))//3
console.log(email.indexOf('Mary'));/-1
截取子字符串
String对象提供以下方法,用于截取子字符串。
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
substr() 从其实索引号提取字符串中指定书目的字符。
substring() 提取字符串中的两个指定的索引号之间的字符。
var msg = 'abc一二三';
console.log(msg.slice(2,4));//c一
console.log(msg.substring(2,4))//c一
console.log(msg.substr(2,1))//c
console.log(msg.slice(-3,-2));//一

  • 分隔字符串

string对象提供以下方法,用于分隔字符串。
split() 把字符串分割为字符串数组。
var str ='1,2,3,4';
str,split('');//['1','2','3','4,'];
str.split('',3);//['1','2','3','4'];

  • 链接字符串

String对象提供了以下方法,用于链接字符串。
concat() 链接两个或者更多字符串,并返回新的字符串。
var s1 ='AA';
var s2= s1.concat('BB','CC',55);
console.log(s1);AA
console.log(s2);//AABBCC55

模式匹配

  • 修饰符

模式匹配中可使用以下三种属性修饰符:
i ignorecase,执行对大小写不敏感的匹配。
g global, 执行全局匹配(查找全部匹配而不是在第一次匹配以后中止)。
m multiline,容许执行多行匹配。

  • 替换子字符串

String对象提供以下方法,用于替换子字符串。
replce()在字符串中查找匹配的子串,并替换于正则表达式匹配的字串。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log (data.replace('microsoft','oracle'));
console.log(data.replace(/microsoft/,'oracle'));
console.log(data.replace(/microsoft/i,oracle));
console.log(data.replace(/microsoft/ig,oracle));

  • 匹配字符串

String对象提供了以下方法,用于匹配字符串。
match() 查找找到一个或多个正则表达式的匹配。

var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.match('microsoft'))
console.log(data.match(/microsoft/));
console.log(data.match(/microsoft/i);
console.log(data.match(/microsoft/ig));

  • 查找字符串

String对象提供以下方法,用于查找字符串
search 查找于正则表达式向匹配的值。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.search)(/'microsoft'/);
console.log(data.search)(/'microsoft'i)/;
console.log(data.search)(/'microsoft'/ig);


  1. ...
  2. 0-9
相关文章
相关标签/搜索