JS中的正则表达式
来源:互联网 发布:h5斗地主源码 编辑:程序博客网 时间:2024/05/17 22:18
a.测试字符串的某个模式,即数据有效性验证。
b.实现按照某种规则替换文本。
c.根据模式匹配从字符串提取一个子字符串。
--------------------------------------------------------------------------
2.JS正则表达式对象创建方式
(1)使用RegExp对象的显示构造函数,语法为:new RegExp("pattern"[,"flags"])(2)使用RegExp对象的隐式构造函数,采用纯粹的文本格式:/pattern/[flags]
-------------------------------------------------------------------------
3.flags标志字符:- g 用作全局标志
- i 用作忽略大小写标志
- m 用作多行标志
如果没有设置这个标志,那么元字符“^”只与整个被搜索字符串的开始位置相匹配,而元字符“$”只与整个被搜索字符串的结束位置相匹配。如果设置了这个标志,那么“^”还可 以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行首)相匹配,而“$”还可以与被搜索字符串中的“\n”或“\r”之前的位置(即一行的行尾)相匹配。
var re=new RegExp("\\d{5}");
var re=/d{5}/;
--------------------------------------------------------------------
4.正则语法:\ :转义
^: :匹配输入字符串的开始位置
$: :匹配输入字符串的结束位置
*: :匹配前面的子表达式零次或多次。例如,zo*
+: :匹配前面的子表达式一次或多次。例如,zo+
?: :匹配前面的子表达式零次或一次。例如,do?
{n} :n 是一个非负整数。匹配确定的 n 次。例如,o{2}
{n,} :n 是一个非负整数。至少匹配n 次。例如,o{2,}
{n,m} :m 和n 均为非负整数,其中n<=m 。最少匹配 n 次且最多匹配 m 次。例如 :o{1,3}
x|y :匹配 x 或 y。例如,z|food
[xyz] :字符集合。匹配所包含的任意一个字符。例如:[abc]
[^xyz]:负值字符集合。匹配未包含的任意字符。例如:[^abc]
[a-z] :字符范围。匹配指定范围内的任意字符
[^a-z]:负值字符范围。匹配任何不在指定范围内的任意字符
\b :匹配一个单词边界。例如: er\b 可以匹配"never"
\B :匹配非单词边界。
\d :匹配一个数字字符。等价于 [0-9]。
\B :匹配非单词边界。
\d :匹配一个数字字符。等价于 [0-9]。
\D :匹配一个非数字字符。等价于 [^0-9]
\n :匹配一个换行符
\r :匹配一个回车符
\s :匹配任何空白字符
\S :匹配任何非空白字符
. :匹配除 "\n" 之外的任何单个字符
----------------------------------------------------------------------
5.正则表达式对象的方法:
exec 在字符串中运行查找,并返回包含该查找结果的一个数组
test 返回一个 Boolean 值,被查找的字符串中是否存在某模式
search 返回与正则表达式查找内容匹配的第一个子字符串的位置
split 按特定字符串将原字符串拆分成数组
match 在字符串中执行查找,并将包含查找的结果作为数组返回
a.在字符串中执行查找
exec 方法:String[ ] exec(String source)
例如:
function isDigit(s){
var reg = /^[0-9]{1,20}$/;
var result = reg.exec(s);
//如果格式正确,返回原字符串,否则返回null
alert(result);
}
b.在字符串中执行查找
match 方法:String[] match(String reg)
例如:
function demoMatch(str){
var regExp = /^[a-z]{3,20}/;
var result = str.match(regExp);
alert(result);
}
这里如果不限制次数,则只返回第一个字母,不符合格式,返回null
c.执行模式判定
test 方法:Boolean test(String source)
例如:
function isDigit(s){
var reg = /^[0-9]{1,20}$/;
var flag = reg.test(s);
//如果格式正确,返回true,否则返回false
if(flag){
return true;
}else{
return false;
}
}
d.执行字符串位置查询
search 方法:int search(String reg)
例如:
function seachString(){
var r, re; // 声明变量
var s = "The rain in Spain falls mainly in the plain.";
re = /falls/; // 创建正则表达式模式
r = s.search(re); // 查找字符串
alert(r); // 返回 int 结果表示出现位置
}
e.执行字符串分割
split 方法:String[ ] split(String reg)
例如:
function splitString( ){
var r, reg; // 声明变量
reg = /abc/; // 创建正则表达式模式
var s = “IcansaymyabcIcansaymyabcIcan…";
r = s.split(reg); // 分割字符串
for(var p in r){ // 返回 String 数组
alert(r[p]);
}
- Js中的正则表达式
- js中的正则表达式
- js中的正则表达式
- js中的正则表达式
- JS中的正则表达式
- JS中的正则表达式
- js中的正则表达式
- js中的正则表达式
- JS中的正则表达式
- js中的正则表达式
- JS中的正则表达式
- js中的正则表达式
- js中的正则表达式
- js中的正则表达式
- js中的正则表达式
- JS中的正则表达式
- js中的正则表达式
- js中的正则表达式
- Android 如何判断一个应用在运行
- 【转】vector的reserve和resize
- Setup Was Unable to Create a DCOM User Account
- java利用jquery和smartupload实现头像上传切割效果
- 软件绿化之实践一--绿化搜狗输入法
- JS中的正则表达式
- 读《像婴儿一样学英语》
- 基于规则引擎的经营决策管理
- FW:让小公司事半功倍的15款应用
- android 文件操作方法集合类分享
- 启动MyEclipse9 出现错误Failed to create the java Vitual Machine
- 扩展LinkButtonSkin类,让LinkButton变成一个开关按钮
- 在HTML中,标记<font>的Size属性最大取值
- 高并发网站架构