
JavaScript常规战斗(将根据最近的写作不断更新)
1. javascript常规对象替换的创建和使用: / pattern / flags首先,学习一个简单的案例以了解替换可以做什么
正则表达式构造函数: new RegExp(“ pattern” [,“ flags”]);
正则表达式替换变量函数: stringObj.replace(RegExp,替换文本);
参数说明:
模式-正则表达式文本
flags(如果存在),它将是以下值:
g: 全局匹配
i: 忽略大小写
gi: 以上组合
//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";
//方式一,最简单常用的方式
var rep=url.replace(reg,"$1ShowBook.aspxbookId=$2&chapterId=$3");
alert(rep);
//方式二 ,采用固定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspxbookId="+p3+"&chapterId="+p3});
alert(rep2);
//方式三,采用非固定参数的回调函数
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspxbookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);
//方法四
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数
var bookId;
var chapterId;
function capText()
{
var args=arguments;
bookId=args[2];
chapterId=args[3];
return args[1]+"ShowBook.aspxbookId="+args[2]+"&chapterId="+args[3];
}
var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);
//使用test方法获取分组
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//获取三个分组
alert(RegExp.$1);
alert(RegExp.$2);
alert(RegExp.$3);
2. 了解测试执行人员匹配搜索替换拆分的6种最常见方法
1)测试检查指定的字符串是否存在
var data =“ 123123”;
var reCat = / 123 / gi;
警报(reCat.test(数据)); //是
//检查字符是否存在g继续向下我不区分大小写
2)exec返回查询值

var data =“ 123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = / cat / i;
警报(reCat.exec(数据)); //猫
3)匹配以获取查询数组
var data =“ 123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = / cat / gi;
var arrMactches = data.match(reCat)
for(var i = 0; i { 警报(arrMactches [i]); //猫cat } 4)搜索返回与indexof类似的搜索位置 var data =“ 123123,213,12312,312,3,Cat,cat,dsfsdfsjs正则表达式 数字替换为,”; var reCat = / cat / gi; 警报(data.search(reCat)); // 23 5)替换替换字符使用常规替换 var data =“ 123123,213,12312,312,3,Cat,cat,dsfsdfs,”; var reCat = / cat / gi; 警报(data.replace(reCat,“ libinqq”)); 6)Split使用规则性拆分数组 var data =“ 123123,213,12312,312,3,Cat,cat,dsfsdfs,”; var reCat = / \,/; var arrdata = data.split(reCat); for(var i = 0;我 { 警报(arrdata [i]); } 3. 常用表达式集合: “ ^ \\ d + $” //负整数(正整数+ 0) “ ^ [0-9] * [1-9] [0-9] * $” //正整数 “ ^((-\\ d +)|(0 +))$” //非正整数(负整数+ 0) “ ^-[0-9] * [1-9] [0-9] * $” //负整数 “ ^-?\\ d + $” //整数 “ ^ \\ d +(\\. \\ d +)?$” //非负浮点数(正浮点+ 0) “ ^(([[0-9] + \\. [0-9] * [1-9] [0-9] *)| |([0-9] * [1-9] [0- 9] * \\. [0-9] +)|([[0-9] * [1-9] [0-9] *))$“ //正浮点数 “ ^((-\ d +(\\. \\ d +)?)|(0 +(\\. 0 +)?))$” //非正浮点数(负浮点数)点号+ 0) “ ^(-(([[0-9] + \\. [0-9] * [1-9] [0-9] *)|([0-9] * [1-9] [ 0-9] * \\. [0-9] +)|([0-9] * [1-9] [0-9] *)))$“ //负浮点数 “ ^(-?\\ d +)(\\. \\ d +)?$” //浮点数 “ ^ [A-Za-z] + $” //包含26个英文字母的字符串 “ ^ [A-Z] + $” //由26个大写英文字母组成的字符串 “ ^ [a-z] + $” //由26个小写英文字母组成的字符串 “ ^ [A-Za-z0-9] + $” //由数字和26个英文字母组成的字符串 “ ^ \\ w + $” //由数字,26个英文字母或下划线组成的字符串 “ ^ [\\ w-] +(\\. [\\ w-] +)* @ [\\ w-] +(\\. [\\ w-] +)+ $” //电子邮件地址 “ ^ [a-zA-z] +: //(\\ w +(-\\ w +)*)(\\. (\\ w +(-\\ w +)*))* (\\?\\ S *)?$“ //网址 “ ^ [A-Za-z0-9 _] * $”. 正则表达式基础 ^匹配输入或行首,/ ^ a /匹配“ an A”,而不是“ An a” $匹配输入或行尾,/ a $ /匹配“ An a”,而不是“ an A” *与前面的元字符匹配0次或更多次,/ ba * /将与b,ba,baa,baaa匹配 +与前面的元字符匹配一次或多次,/ ba + /将与ba,baa,baaa匹配 ?匹配前面的元字符0或1次,/ ba? /会匹配b,ba (x)匹配x并将x保存到名为$ 1 ... $ 9的变量中 x | y匹配x或y {n}完全匹配n次 {n,}匹配n次以上 {n,m}匹配n-m次 [xyz]字符集(字符集),与该集中的任何一个字符(或元字符)匹配 [^ xyz]与该集合中的任何字符都不匹配 [\ b]匹配一个退格字符 \ b匹配单词边界 \ B匹配一个无边界单词 \ cX这里,X是控制字符,/ \ cM /匹配Ctrl-M \ d匹配单个字符,/ \ d / = / [0-9] / \ D匹配非单词字符,/ \ D / = / [^ 0-9] / \ n匹配换行符 \ r匹配回车符 \ s匹配一个空白字符,包括\ n,\ r,\ fjs正则表达式 数字替换为,\ t,\ v等. \ S匹配一个非空白字符,该字符等于/ [^ \ n \ f \ r \ t \ v] / \ t匹配制表符 \ v匹配直线选项卡 \ w匹配可以形成单词的字符(字母数字,这是我的免费翻译,包括数字),包括下划线,例如[\ w]匹配“ $ 5.98”中的5,等于[a- zA-Z0-9] \ W匹配无法形成单词的字符. 例如,[\ W]匹配“ $ 5.98”中的$,它等于[^ a-zA-Z0-9].


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-177733-1.html
下次再来就撞击