js基础总结 二

最近不太忙,梳理下js 基础,sublime写的将就看

正则 简而言之就是描述一个事件的规则
设置规则,来完成我们需求的一些操作。

1.定义 var reg=new RegExp(字符串规则,字符串选项);
var reg=/规则/选项;

2.选项 1 i ignore--执行忽略大小写的匹配
2 g gloal--执行全局匹配(可以查看所有的匹配而不是只找到第一个匹配后就停止)
3 m mutil-line--执行多行匹配

3.转义: \
\d ditital 数字 [0-9]
\w word 单词 [a-zA-Z0-9_]
s space 空白

\D 非数字 [^0-9]
\W 非单词 [^a-zA-Z0-9_]
\S 非空白

. 任意东西

\. 点本身
\\ 斜杠本身


4.量词:规定了几个
{n} 正好几个 /\d{2}/
/\d{475}/
/\d{2}|\d{3}/
{n,m} 最少n个,最多m个
/\d{1,2}/
/\d{2,500}/
/\d{0,1}/ -> 可有可无
{n,} 最少n个,最多不限
/\d{2,}/
/\d{1,}/ 若干
/\d{0,}/
{,m} 最少不限,最多m个 ×

? {0,1} 可有可无
/\d{0,1}/
/\d?/
+ {1,} 若干
/\d{1,}/
/\d+/
* {0,} 可以没有,有了也不限
/\d{0,}/
/\d*/

* 量词,默认只管前面一位

5.方括号: []

修饰:
^ 开始
$ 结尾
\b boundary 边界

[abc] 任意一个 /a|b|c/

[0-9] 区间

[^abc] 排除

/^a/ -> 以字母a开头的东西
/[^a]/ -> 排除字母a
/^[a-z]/ -> 以小写字母开头
/^[^a-z]/ -> 以非小写字母开头

 

6. (1) test() 在字符串中查找符合正则的内容,若查找到返回true,反之返回false.

^ $ 优先级比 | 要高

校验年龄 0-100 var reg=/^([1-9]?\d|100)$/; reg.test('22'); // true

(2) search() 在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不
只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1;

首个数字出现的位置 var reg=/\d/; 'aa1fsff'.search(reg) // 1

(3) match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,
失败就返回null

var reg=/\d+/img; 'sssa1122s2s4'.match(reg) // ['1122','2','4']

(4) replace 查找符合正则的字符串,就替换成对应的字符串,返回替换后的内容。
传入function(s,$1,$2..$99){}时,代表所有符合条件的选项,$1 ..$99
我的理解就是()中的内容。。。。

去掉首尾空格
function trim(str){
var re = /^\s+|\s+$/g;
return str.replace(re,'');
}
只能输入数字 var oTxt=docuemnt.querySelector('#txt'); oTxt.oninput=function(){
oTxt.value=oTxt.value.replace(/\D/g,'');
}

var str='在匹配成功时,会将子表达式匹配到的内容,保存到内存中一个以数字编号的组里,可以简单的认为是对一个局部变量进行了赋值,这时就可以通过反向引用方式,引用这个局部变量的值。';

var reg=/匹配|保存/g;
str.replace(reg,function(s){
var tmp='';
for(var i=0; i< s.length; i++){
tmp+='*';
}
return tmp;
});

str.replace(reg,function(s){
return s.replace(/./g,'*');
})

首字母大写

var str='apple babab';

str=str.replace(/\b(\w{1})(\w+)?\b/gi,function(s,$1,$2){
return $1.toUpperCase()+$2
});

神奇的批量加事件

'onclick onmouseover onmouseout'.replace(/\w+/g,function(sEv){
oDiv[sEv]=function(){
do something;
};
});

匹配class \b边界

function hasClass(obj,sClass){
var reg=new RegExp('\\b'+sClass+'\\b');
return reg.test(obj.className);
}


解析url
function getQueryObject(url) {
url = url == null ? window.location.href : url;
var search = url.substring(url.lastIndexOf("?") + 1);
var obj = {};
var reg = /([^?&=]+)=([^?&=]*)/g;
search.replace(reg, function (rs, $1, $2) {
var name = decodeURIComponent($1);
var val = decodeURIComponent($2);
val = String(val);
obj[name] = val;
return rs;
});
return obj;
}


js常用正则表达式 http://www.cnblogs.com/zfc2201/archive/2012/12/18/2824107.html

posted @ 2016-11-07 18:04  如刀似剑  阅读(150)  评论(0)    收藏  举报