美文网首页
js字符串和正则操作

js字符串和正则操作

作者: bjhu电net | 来源:发表于2017-10-27 11:41 被阅读0次

    字符串的生成转换

    可以将任何类型的数据都转化成字符串,具体有三种方式

    var num=19;
    var mystr=num.toString();
    var mystr=String(num);
    var mystr=""+num;
    

    字符串转化成其他类型
    js提供了parseInt()和parseFloat()两个转换函数,Number也可以实现转化

    parseInt("1234abc");//1234
    parseInt("0xA");//10
    parseInt("22.5");//22
    parseInt("red");NaN
    parseInt("10",2);//2
    parseInt("10",8);//8
    parseInt("10",10);//10
    parseInt("AF",16);//175
    parseFloat("1234abc");//1234.0
    parseFloat("0xA");//NaN
    parseFloat("22.5");//22.5
    parseFloat("22.34.5");//22.34
    parseFloat("0908");//908
    parseFloat("red");//NaN
    Number(false);//0
    Number(true);//1
    NUmber(undefined);//NaN
    Number(null);//0
    Number("5.5");//5.5
    Number("56");//56
    Number("5.6.7");//NaN
    Number(new Object());//NaN
    Number(100);//100
    

    字符的操作

    var str="i,love,you,do,you,love,me";
    var thechar=str.charAt(8);//获取指定索引上的字符o
    var thacharcode=str.charCodeAt(8);//获取指定索引上的字符编码111
    

    字符串的增删改查

    //替换
    name = "hello world ".trim();//trim()删除字符串的前后空格
    name = name.replace("hel","hhh");//replace替换第一个hel成hhh
    name = name.replace(/eng/g,"hhh");//replace接受正则表达式,/g替换全部
    
    //查询
    var beginindex=name.indexOf("t",name.length-10);//indexOf和lastIndexOf查询字符串的位置,第二个参数表示从哪个索引开始向后搜索。length方法是取字符串的长度,如果没有查询到改字符返回-1.
    var endindex=name.laseIndexOf("e",0);
    
    //截取
    var substr=name.slice(1,5);//截取子字符串,左闭右开。
    name1=name.substring(beginindex,endindex);//slice,substring参数首尾下标,substr为起点下标和长度。都不改变源字符串。
    name1=name.substr(-4);//传入负值时,slice将负值加上字符串长度,substr将第一个负值加上字符串长度,第二个负值转化为0,substring都将赋值转化为0.
    //substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
    
    //拼接
    name1=name+"eya"+1;//使用加号拼接字符串和数据成一个新的字符串
    name1=name.concat("yes");//concat函数拼接字符串
    
    //大小写转换
    var lowcasestr=name.toLowerCase();//全部转化为小写
    var upcasrstr=name.toUpperCase();//全部转化为大写
    

    当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0。

    字符串的比较

    比较两个字符串,比较是按照字母表顺序比较的

    var one="chicken";
    var two="egg";
    var first=one.localeCompare(two);//-1表示小于
    one.localeCompare("chicken");//0表示等于
    two.localeCompare("apple");//1表示大于
    

    字符串分割

    var mystr="i,love,you,do,you,love,me";
    var substrArray=mystr.split(",");//将字符串转化成数组
    var arrayLimited=mystr.split(",",3);//split的第二个参数,表示返回数组的最大长度
    

    正则法则

    正则表达式=/pattern/flags,其中flags中的g表示全部,i表示不区分大小写,m表示匹配多行,pattern包含([{^$|)?*+.]}元字符,如果匹配的字符串中包含元字符,使用\转义。

    var pattern1=/(.)u/gi;//正则表达式,标志没有,可为空,也可以使用var pattern1= new RegExp("pattern","flags")
    if(pattern1.test(name)){
        RegExp.input;//原始字符串
        RegExp.leftContext;//捕捉到的位置的左边的字符串
        RegExp.rightContext;//捕捉到的位置的右边的字符串
        RegExp.lastMatch;//返回最近一次与整个正则表达式匹配的字符串
        RegExp.lastParen;//返回最近一次捕捉的字符
        pattern1.global;//返回正则是否包含全局标志g
    }
    var matches=pattern1.exec(name);//查询符合要求的字串。maches.index表示查询到的其实下标,matches.input表示输入的字符串,pattern1.lastIndex表示查询到的结束下标,matches[0]表示查找到的第一个匹配项,若匹配为全局模式,则每次返回下一个匹配项。
    

    正则表达式字符

    \ 做为转义,即通常在“\”后面的字符不按原来的意义解释,如/b/匹配字符"b",当b前面加了反斜杠后/\b/,转义为匹配一个单词的边界。或者对正则表达式功能字符的还原,如*匹配它前面的元字符0次或者多次,/a*/将匹配a,aa,aaa,加入“\”后,/a\*/将匹配a*
    ^匹配一个输入或者一行的开头,/^a/匹配“an A”而不匹配“An a”
    $匹配一个输入或者一行的结尾,/a$/匹配“An a”,而不匹配“an A”
    *匹配前面的元字符0次或者多次,/ba*/将匹配ba,baa,baaa
    +匹配前面的元字符1次或者多次,/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匹配一个空白字符
    \S匹配一个非空白字符
    \t匹配一个制表符
    \v匹配一个垂直制表符
    \w匹配字母数字下划线
    \W匹配非字母数字下划线
    

    字符串原型

    通过修改字符串的原型,可以为所有字符串添加公共函数

    String.prototype.startwith=function(text){
      return this.indexOf(text)==0;
    }//设置字符串引用的原型,为String类型添加方法
    

    相关文章

      网友评论

          本文标题:js字符串和正则操作

          本文链接:https://www.haomeiwen.com/subject/rikrpxtx.html