正则表达式

正则表达式可以做什么?
1.测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验
2.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字


一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

一些简单的例子:

var re = new RegExp();
re =new RegExp("a"); //最简单的正则表达式,将匹配字母a
re=new RegExp("a","i"); //第二个参数,表示匹配时不分大小写
//g (全文查找)
//i (忽略大小写)
//m (多行查找)
var re = new RegExp("a","gi"); //匹配所有的a或A
var re = /a/gi; //匹配所有的a或A---同上。


test方法,测试字符串,符合模式时返回true,否则返回false

var re = /he/; //最简单的正则表达式,将匹配he这个单词
var str = "he";
alert(re.test(str)); //true


//(^)代表从字符开始位置开始匹配,he在不在最开始的位置,i代表不管he的大小写
re = /^he/i;
//$表示字符结束位置
re = /^he$/i;


// \s匹配任何空白字符,包括空格、制表符、换页符等等
re = /\s/;
str= "user Name"; //用户名包含空格
alert(re.test(str)); //true


// [] 匹配指定范围内的任意字符,这里将匹配英文字母,不区分大小写
re=/^[a-z]/i;
str="variableName"; //变量名必须以字母开头
alert(re.test(str)); //true
str1="123abc";
alert(re.test(str1)); //false

//在开始^--结尾$,至少有一个字母[a-z]+,只好又一个空格\s+,至少有一个数字\d+
var re = /^[a-z]+\s+\d+$/i;

//^[a-z]*代表开头,可以没有字母,或者有字母,开头有其他的东西(比如数字)就报错
var re = /^[a-z]*\s+\d+$/i;


1.•test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。
2.•exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。
exec,返回一个数组,数组的第一个元素为完整的匹配内容
exec返回的数组第1到n元素中包含的是匹配中出现的任意一个子匹配


<script type="text/javascript">
var j = "xxdwserew 231233";
var re = /\d+/;
alert(re.exec(j)); //就把231233输出

var osVersion = "Ubuntu 8";
re=/^[a-z]+\s+(\d+)$/i; //用()来创建子匹配
arr =re.exec(osVersion);
alert(arr[0]);//整个osVersion,也就是正则表达式的完整匹配
alert(arr[1]);//8,第一个子匹配

</script>


replace方法

var str ="some money";
alert(str.replace("some","much")); //much money

//replace的第一个参数可以为正则表达式
var re = /\s/;//空白字符
alert(str.replace(re,"%")); //some%money

//g,全局标志,将使正则表达式匹配整个字符串
str ="some some some ";
re = /\s+/g;
alert(str.replace(re,"@")); //some@some@some@

//split
var str = "a-bd-c";
var arr = str.split("-"); //返回["a","bd","c"]


var str = "a-bd-c";
var re=/[^a-z]/i //[^a-z] 出a-z之外的任何东西
var arr = str.split(re);//仍返回["a","bd","c"];



//去掉开头和结尾的空格
var e = " wer sefs ";
var w = trim(e);
alert(w);

function trim(s) {
var r1 = /^\s+/; //去掉开头的空格
var r2 = /\s+$/; //去掉结尾的空格
s = s.replace(r1, '');
return s.replace(r2, '')
}

//升级上面方法,去掉全部空格。
var e = " wer sefs ";
var w = trim(e);
alert(w);

function trim(s) {
var r1 = /[^a-z0-9]/gi; //去掉开头的空格
s = s.replace(r1, '');
return s
}


一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。
. 匹配除 "\n" 之外的任何单个字符(但是.匹配顿号(.)时要变成\.)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值