javascript 字符串与正则

Posted 翊枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 字符串与正则相关的知识,希望对你有一定的参考价值。

序:就是简单记录下正则的一些基础,还有cookie的一些设置获取删除

#字符串操作
search 查找
substring 获取子字符串 str.substring(start,stop)
charAt 获取某个字符串
split 分割字符串,获得数组

var str="adsddd";
var str1="ad-sd-dd-12-56";
console.log(str.search(‘b‘));//正常返回位置,没有找到返回-1
console.log(str.substring(0,3));//不包含最后的位置
console.log(str.charAt(1))//得到索引的值
console.log(str1.split("-"));//字符串分割成数组

  

#是否使用正则处理

var str="12 ff 10 fdfddf3354 122 -=-=-124fg";
//从上面找出所有的数字

//如果不用正则,需要for循环 charAt查找

var arr=[];
    var tmp=‘‘;
    for(var i=0;i<str.length;i++){
        if(str.charAt(i) >= ‘0‘ && str.charAt(i) <= ‘9‘){
            tmp+=str.charAt(i);
        }else{
            if(tmp){
                arr.push(tmp)
                tmp=‘‘;
            }
        }
    }

  

//正则处理

alert(str.match(/d+/g))

  


#正则 (规则表达式)

RegExp对象
js风格-----new RegExp("a","i")//第一个参数字符串,第二个参数
perl风格--------/d/i //里面的规则

/i //不区分大小写
/g //全局寻找
^ //匹配输入字行首
+ //若干,多少都可以(一次或多次)
? //可有可无
d //数组
w //英文 数字 下划线
s // 空白字符 空格 tab
D //[^0-9]
W //[^a-z0-9_]
{n} //正好出现n次
{n,m} //最少n次,最多m次
[^] //出现方括号代表排除

d{9} //9个数字


固话正则
010-89564665
89456545

(0d{2,3}-)?[1-9]d{7}

邮箱验证
[email protected]
/^[email protected][0-9a-z]+.[a-z]+$/i

 

match 所有符合规则的提取出来,返回数组
search 找到符合规则的索引值
test //符合规则返回true

var str3=‘sd asdva saasd‘;
var re=/a/g;
//替换str3里的a
console.log(str3.replace(re,‘00‘));

敏感词过滤
//过滤北京,淘宝,豆瓣
var re=/北京|淘宝|豆瓣/g;
strmim1=strmim2.replace(re,‘*‘)


元字符(方括号)
[apc]px //apc就是或

//范围
[0-9] //0-9
//排除
[^a-z] //排除字母

去除html标签
//过滤html标签
var re=/<[^<>]+>/g;
strmim1=strmim2.replace(re,‘*‘)

 

cookie
什么是cookie
比如自动登录,记住用户名
cookie特性
同一个网站所有页面共享一套cookie
数量、大小有限(4-10k)
过期时间
js中使用cookie
document.cookie

cookie设置

 //设置cookie
        function setCookie(cname, cvalue, exdays) {
             var d = new Date();
             d.setTime(d.getTime() + (exdays*24*60*60*1000));
             var expires = "expires="+d.toUTCString();
             document.cookie = cname + "=" + cvalue + "; " + expires;
        }
        //获取cookie
        function getCookie(cname) {
             var name = cname + "=";
             var ca = document.cookie.split(‘;‘);
             for(var i=0; i<ca.length; i++) {
                  var c = ca[i];
                  while (c.charAt(0)==‘ ‘) c = c.substring(1);
                  if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
             }
               return "";
        }
        //清除cookie 
        function clearCookie(name) { 
            setCookie(name, "", -1); 
        } 
        function checkCookie() {
             var user = getCookie("username");
             if (user != "") {
                alert("Welcome again " + user);
             } else {
                user = prompt("Please enter your name:", "");
                if (user != "" && user != null) {
                    setCookie("username", user, 365);
                }
             }
        }
        checkCookie(); 

  

 


















































以上是关于javascript 字符串与正则的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 正则表达式提取字符串?

攻破难啃的骨头-正则表达式(转)

我的javascript片段返回“非法字符”

JavaScript中 正则表达式的使用 及 常用正则表达式

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

通过 Java 正则表达式提取 semver 版本字符串的片段