您的位置:首页 > 其它

正则表达式

2018-01-02 14:48 176 查看

正则表达式的基本语法

直接量语法: /pattern/attributes

创建RegExp对象的语法:new RegExp(pattern,attributes);

pattern 是一个正则表达式的模板,

attributes(属性),表示一个可选属性,包含下列:

修饰符描述
i对大小写不敏感
g全局匹配
m执行多行匹配
返回值:一个 新的RegExp对象,拥有指定的模板和 属性。

这种方式只能使用正则内置的几个方法匹配,不建议使用,建议使用字面量的方法

var patt1=new RegExp("e","g");
do
{
result=patt1.exec("The best things in life are free");
document.write(result);
}
while (result!=null)


支持正则表达式的String方法

search() 用于检索指定的字符串,或者与正则表达式匹配的字符串。

语法:StringObject.search(regex);

参数regex,表示要匹配的字符串,或者一个RegExp对象

返回值,返回第一个成功匹配的索引,如果没有返回-1;

var str = "hello world,hello world";
// 返回匹配到的第一个位置(使用的regexp对象检索)
console.log(str.search(/hello/)); // 0
// 没有全局的概念 总是返回匹配到的第一个位置
console.log(str.search(/hello/g)); //0

console.log(str.search(/world/)); // 6

// 也可以是检索字符串中的字符
console.log(str.search("wo")); // 6

// 如果没有检索到的话,则返回-1
console.log(str.search(/longen/)); // -1

// 我们检索的时候 可以忽略大小写来检索
var str2 = "Hello";
console.log(str2.search(/hello/i)); // 0


match() 方法,匹配和正则表达式向匹配的字符串的值

@param(参数)

searchValue 需要检索字符串的值;

regexp: 需要匹配模式的RegExp对象;

return(返回值)

存放匹配成功的数组; 它可以全局匹配模式,全局匹配的话,它返回的是一个数组。如果没有找到任何的一个匹配,那么它将返回的是null;返回的数组内有三个元素,第一个元素的存放的是匹配的文本,还有二个对象属性;index属性表明的是匹配文本的起始字符在str
4000
ingObject中的位置;input属性声明的是对stringObject对象的引用

var str = "hello world";
console.log(str.match("hello")); // ["hello", index: 0, input: "hello world"]
console.log(str.match("Hello")); // null
console.log(str.match(/hello/)); // ["hello", index: 0, input: "hello world"]
// 全局匹配
var str2="1 plus 2 equal 3"
console.log(str2.match(/\d+/g)); //["1", "2", "3"]


replace()方法:该方法用于在字符串中使用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子字符串;

基本语法:stringObject.replace(regexp/substr,replacement);

@param(参数)

regexp/substr; 字符串或者需要替换模式的RegExp对象。

replacement:一个字符串的值,被替换的文本或者生成替换文本的函数。

@return(返回值) 返回替换后的新字符串

注意:字符串的stringObject的replace()方法执行的是查找和替换操作,替换的模式有2种,既可以是字符串,也可以是正则匹配模式,如果是正则匹配模式的话,那么它可以加修饰符g,代表全局替换,否则的话,它只替换第一个匹配的字符串;

split()方法: 该方法把一个字符串分割成字符串数组。

基本语法如:stringObject.split(separator,howmany);

@param(参数)

separator[必填项],字符串或正则表达式,该参数指定的地方分割stringObject;

howmany[可选] 该参数指定返回的数组的最大长度,如果设置了该参数,返回的子字符串不会多于这个参数指定的数组。如果没有设置该参数的话,整个字符串都会被分割,不考虑他的长度。

@return(返回值) 一个字符串数组。该数组通过在separator指定的边界处将字符串stringObject分割成子字符串。

RegExp对象方法

text() 方法,用于监测一个字符串是否匹配了某个模式

基本语法:RegExpObject.test(str);

@param(参数) str是需要检测的字符串;

@return (返回值)如果字符串str中含有与RegExpObject匹配的文本的话,返回true,否则返回false

var str = "longen and yunxi";
console.log(/longen/.test(str)); // true
console.log(/longlong/.test(str)); //false

// 或者创建RegExp对象模式
var regexp = new RegExp("longen");
console.log(regexp.test(str)); // true


exec()方法: 该方法用于检索字符串中的正则表达式的匹配。

基本语法:RegExpObject.exec(string)

@param(参数):string【必填项】要检索的字符串。

@return(返回值):返回一个数组,存放匹配的结果,如果未找到匹配,则返回值为null;

注意:该返回的数组的第一个元素是与正则表达式相匹配的文本,该方法还返回2个属性,index属性声明的是匹配文本的第一个字符的位置;input属性则存放的是被检索的字符串string;该方法如果不是全局的话,返回的数组与match()方法返回的数组是相同的。

var str = "longen and yunxi";
console.log(/longen/.exec(str));
// 打印 ["longen", index: 0, input: "longen and yunxi"]

// 假如没有找到的话,则返回null
console.log(/wo/.exec(str)); // null


正则表达式pattern模板

匹配单个字符



预定义字符



量词和边界匹配器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: