javaScript内置对象RegExp

 RegExp:

正则对象:
new RegExp(pattern, attributes);
pattern:是一个字符串;
attributes:包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配、多行匹配。

 /[abc]/ 查找方括号之间的字符
例:/[a-h]/g查找a-h字符全局搜索
/[^abc]/查找任何不在方括号之间的字符
例:/[^a-h]/g查找不在a-h之间的字符
/[0-9]/查找0-9的数字
/[a-z]/查找任何小写a到小写z的字符
/[A-Z]/查找任何大写A到大写Z的字符
/[A-z]/查找任何大写A到小写z的字符
/[adgk]/查找给定集合内的任何字符
/[^adgk]/查找给定集合外的任何字符
(red|blue|green)查找任何指定选项

/./查找单个字符
例:var z=/h.t/g
/\w/ 查找单词字符
/\W/ 查找非单词字符
/\d/ 查找数字
/\D/ 查找非数字
/\s/ 查找空白字符
/\S/ 查找非空白字符
/\b/ 匹配单词边界。
/\B/ 匹配非单词边界。
/\0/ 查找 NUL 字符。
/\n/ 查找换行符。
/\f/ 查找换页符。
/\r/ 查找回车符。
/\t/ 查找制表符。
/\v/ 查找垂直制表符。
/\xxx/ 查找以八进制数 xxx 规定的字符。
/\xdd/ 查找以十六进制数 dd 规定的字符。
/\uxxxx/ 查找以十六进制数 xxxx 规定的 Unicode 字符。
/n+/至少含有一个n的字符串
例:var patt1=/o+/g;
文本:Hell(ooo) W(o)rld! Hell(o) W3Sch(oo)l!
/n*/包含0个或多个含有n的字符串
例:var patt1=/lo*/g;
文本:He(llooo) Wor(l)d! Hello W3Schoo(l)!";
/n?/任何包含0个或者1个n的字符串
例:var patt1=/10?/g;
文本:(1), (10)0 or (10)00?
/n{X}/包含x个n的字符串搜索
例:var patt1=/\d{4}/g;
文本:100, (1000) or (1000)0?
/n{x,y}/对包含x至y个含有n的字符串搜索
例:var patt1=/\d{3,4}/g;
文本:(100), (1000) or (1000)0?
/n{x,}/至少含x个n进行搜素
例:var patt1=/\d{3,}/g;
文本:(100), (1000) or (10000)?
/n$/任何结尾为n的字符串
例:var patt1=/is$/g;
文本:Is this h(is)
/^n/任何开头为n的字符串
例:var patt1=/^Is/g;
文本:(Is) this his
/?=n/对其后紧跟n的字符串进行搜索
例:var patt1=/is(?= all)/g;
文本:Is th(is) all there is
/?!n/对其后没有紧跟n的字符串进行搜索
例:var patt1=/is(?! all)/gi;
文本:(Is) this all there (is)

属性:
global:是否有标志g
ignoreCase:是否标志i
lastIndex:标示开始下一次匹配的字符位置。
multiline:是否具有标志 m。
source:返回匹配的文本

对象:

compile();用于改变RegExp,既可以改变检索模式,也可以添加或删除第二个参数。
例:
<script>
var hh=new RegExp("e");
document.write(hh.test("The best things in life are free"));
document.write("<br>");
hh.compile("d");
document.write(hh.test("The best things in life are free"));
</script>
结果:true false

exec();检索字符串中指定的值,返回找到的值,如果没找到返回null
例:
<script>
var hh=new RegExp("re");
document.write(hh.exec("The best things in life are free"));
</script>
结果:re

test();检索字符串中指定的值,返回true或false
例:
<script>
var hh=new RegExp("f");
document.write(hh.test("The best things in life are free"));
</script>
结果:true

支持正则表达式的string对象方法
 
 
search();
检索字符串中指定的字符串,返回的结果如果有匹配的就返回相匹配字符串的起始位置,如果没有检索到,就返回-1,默认检索分大小写
例:
<script type="text/javascript">
var str="Visit W3School!"
document.write(str.search(/w3school/i))
</script>
结果:6

 
match();
在字符串内检索指定的值,返回指定的值。没有检索到值就返回null
例:
<script>
var str="Hello world!"
document.write(str.match("world")+"<br>")
document.write(str.match("worlld")+"<br>")
document.write(str.match("world!")+"<br>")
</script>
结果:world null world!
<script>
var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))
</script>
结果:1,2,3

replace();
用其中一些字符串替换另一些字符串,查找和替换操作

例:找到Microsoft替换成hhh
<script>
var str="Welcome to Microsoft!"
str=str+"We are proud to announce that Microsoft has"
str=str+"one of the largest Web Developers sites in the world."
document.write(str.replace(/Microsoft/g,"hhh"))
</script>
结果:Welcome to hhh!We are proud to announce that hhh has one of the largest Web Developers sites in the world.
小写替换成大写
<script>
var str="javascript Tutorial";
document.write(str.replace(/javascript/i,"JavaScript"));
</script>
结果:JavaScript Tutorial
把Doe, John转换成John,Doe
<script>
var str="Doe,John";
document.write(str.replace(/(\w+)\s*,\s*(\w+)/,"$2 $1"));
</script>
结果:John,Doe
把双引号改成单引号
<script>
var str='"a","b"';
document.write(str.replace(/"([^"]*)"/g,"'$1'"));
</script>
结果:'a','b'
把首字母变成大写
<script>
var str='aaa bbb ccc';
document.write(str.replace(/\b\w+\b/g,function(hh){return hh.substring(0,1).toUpperCase()+hh.substring(1);}));
</script>
结果:Aaa Bbb Ccc


 
判断有没有空格,开头到结束不允许有空格:
var zz=/^a/i;
alert("typeof(zz)");

<script>
var str="user name";
if(str.match(/^\S+$/)){
alert("true");
}
else
{
alert("false");
}
</script>

把数字7替换成#号:
<script>
var str="user namenxdwhu7kpwq7kw5mcp9,cl205xj8";
var nstr=str.replace('7',"#");
document.write(str+"<br>");
document.write(nstr);
</script>

function()
{
alter
}

把所有数字换成#号:

<script>
var str="user namenxdwhu7kpwq7kw5mcp9,cl205xj8";
var nstr=str.replace(/\d/g,"#");
document.write(str+"<br>");
document.write(nstr);
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值