zoukankan      html  css  js  c++  java
  • JavaScript Class 2

    学习内容:

    1.数据类型转换:

    (a)通过 + 或者tostring转化字符串

    1 <script>
    2     var x = 2;
    3     var y = "5";
    4     var a = x+y;
    5     alert(x+y);//输出字符串25,只有数值之间相加才会输出数值
    6     var z = x.toString();
    7     alert(z);
    8 </script>

    PS: +运算符的多态: 在执行数值相加时,得到的是数字,在执行数值与字符串相加时,得到的是字符串。

    (b)parseInt 其他类型转化为整型

    1 <script>
    2     var b = 3.14;
    3     var c = parseInt(b);//浮点转整型
    4     alert(c);
    5 </script>

    (c)parseFloat 其他类型转化为浮点型

    1 <script>
    2     var d = 4;
    3     var e = parseFloat(d);//整型转浮点
    4     alert(e);
    5 </script>

    (d)字符串强转数值

    <script>
        var f = "yes";
       var g = "123"; alert(parseInt(f));
    //返回NaN 即 not a number 字母无法强转数值

       alert(parseInt(g));//返回123
    </script>

    2.字符串常用操作:

     1 <script>
     2     var str = "who is your daddy";
     3     alert(str.length);//返回字符串长度,含空格
     4     alert(str.charAt(4));//获取字符串特定索引处的字符,注意,不算空格
     5     alert(str.toUpperCase());//全部转为大写,toLowerCase 
     6     alert(str.indexOf("a"));//返回字符下标位置,从0开始,注意加双引号,否则返回-1
     7     alert(str.indexOf("d",13));//从第13位开始第一次出现d的下标位置
     8     alert(str.lastIndexOf("d"));//字符出现的最后一个下标位置
     9     alert(str.substring(4));//从第四位开始截取的字符串
    10     alert(str.substring(4,15));//从第4位截取到15位
    11     alert(str.slice(4));//效果同substring
    12     alert(str.replace("o","a"));//字符串替换
    13     alert(str.match("f"));//匹配得到显示,匹配不到返回null
    14     alert(str.search("f"));//搜索并返回下标位置,没有返回-1
    15     var m = "5.5";
    16     var n = 2;
    17     alert(m-n);//数学运算 - * / 字符串自动转换为数字,只有运算功能
    18     alert(parseFloat(m)+n);//输出7.5 字符串转浮点
      </script>

    3.正则表达式:

    正则表达式是对字符串操作的一种逻辑公式,
    就是用事先定义好的一些特定字符、及这些特定字符的组合,
    组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    可用于表单检测,验证码检测等。

    (a)声明正则表达式的两种方式:

    1 <script>
    2     var reg1 = /pattern/;//pattern是规则
    3     var reg2 = new RegExp("pattern");
    4 </script>

    (b)正则表达式的两种常用方法:

    (1)test()检索字符串中的指定值。返回值是 true 或 false。

    (2)exec()检索字符串中的指定值。返回值是被找到的值,如果没有发现匹配,则返回 null。

    1 <script>
    2     var p1 = new RegExp("h");
    3     var s = "hello world";
    4     alert(p1.test(s));//返回true
    5     alert(p1.exec(s));//返回h
    6 </script>

     (3)常用通配符:

    . 匹配所有字符
    d 匹配 0-9  D 匹配非数字

    s匹配所有空白符,包括空格、制表符、换行符、回车符等
    S匹配所有非空白字符

    w匹配所有单词字符,包括0-9数字、26个英文字母和下划线
    W匹配所有非单词字符

    匹配单词边界 B匹配非单词边界

    [abc]查找方括号之间的任何字符
    [^abc]查找任何不在方括号之间的字符

    [0-9]查找0-9之间的数字

    [a-z]查找a-z之间的小写字母

    [A-Z]大写A-Z [A-z]大写A到小写z,既涵盖所有26个字母的大小写

    (red|blue|green)查找任何指定的选项,例如邮箱.com .cn .org

     1 <script>
     2     var i = "Just do it";
     3     var o = /d/;
     4     alert(o.test(i));
     5     var u = /a$/;
     6     alert(u.test(i));
     7     var n = /d/;
     8     alert(n.test(i));
     9     var nn = /D/;
    10     alert(nn.test(i));
    11     var nl = /W/;
    12     alert(nl.test(i));
    13     var ab = /[a-b]/;
    14     alert(ab.test(i));
    15     var tp = /[^j]/;
    16     alert(tp.test(i));
    17 </script>

    (4)常用量词:

    n$ 匹配任何结尾为 n 的字符串。
    ^n 匹配任何开头为n的字符串
    n+ 匹配任何包含至少一个n的字符串
    n* 匹配任何包含零个或多个n的字符串
    n? 匹配任何包含零个或一个n的字符串
    n{X} 匹配包含X个n的序列的字符串 (序列为连续的意思)
    n{X,Y} 匹配包含X或Y个n的序列的字符串
    n{X,} 匹配包含至少X个n的序列的字符串

     1 <script>
     2     var wr = "hEllo world";
     3     var n1 = /a+/;
     4     var n2 = /o*/;
     5     var n3 = /o?/;
     6     var n4 = /l{3}/;//包含连续3个l的字符串 false
     7     var n5 = /l{2,3}/;//包含连续2个或3个l的字符串 true
     8     var n6 = /o{2,}/;//包含至少连续2个o
     9     var n7 = /d$/;
    10     var n8 = /^h/;
    11     alert(n6.test(wr));
    12 </script>

    (5)修饰符:

    i 执行对大小写不敏感的匹配
    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

     1 <script>
     2     var n9 = /e/i;
     3     alert(n9.test(wr));
     4     var n10 = /l/g;
     5     for (i=0;i<wr.length;i++){
     6          fl = n10.exec(wr);
     7         if(fl == null){
     8         break;
     9         } 
    10         document.write(fl);
    11     }
    12 </script>    

    (6)综合运用:

    设置一个邮箱名输入规则:

    1 <script>
    2     var em = "84751s@126.com";
    3     var email = /^[0-9A-z_-]+@[0-9A-z_-]+.+[com|cn|org]+$/;
    //以数字、大小写字母、下滑线、短杠开头 + @
    数字、大小写字母、下滑线、短杠+ . + com|cn|org结尾 .可使.变为普通字符串
    4 // ^  +& 以...开头和以...结尾,用于字符串拼接
    5     alert(email.test(em));
    6 </script>

    4.数组:

     1 <script>
     2     var arr1 = [2,5,6];//定义时直接给数组元素赋值
     3     var arr2 = [];//定义一个空数组
     4     var arr3 = new Array();//定义一个空数组并通过索引来赋值
     5     arr3[0] = 1;//数组下标由0开始
     6     arr3[3] = "abc";
     7     arr2[0] = 9;
     8     arr2[1] = 3;
     9     alert(arr1.length);//数组的length是数组内数据的个数
    10     数组长度可变。总长度等于数组的最大索引值+1
    11     同一数组中的元素类型可以互不相同
    12     alert(arr3[2]);//当访问未赋值的数组元素时,该元素值为undefined,不会数组越界
    13     var arr4 = [1,2,"a","b"]
    14     for(x in arr4){//for in遍历数组
    15         document.write(arr4[x]);
    16     }
    17     for(i=0;i<arr4.length;i++){//for循环遍历数组
    18         document.write(arr4[i]);
    19     }
    20     for(i=0;i<10;i++){
    21         document.write(i+"<br/>");
    22     }
    23 </script>

    5.运算符:

     1 <script>
     2     var a = 52%10;//  %取余运算   = 赋值 从右向左赋值
     3     document.write(a);
     4     //三目运算,返回布尔值,可用 if else 取代
     5     var b = 2;
     6     var c = 4;
     7     b<c?alert("c大"):alert("b大");
        if(b<c){
          alert("c大");
        }
        else{
          alert("b大");
        }
    8 // , 运算符 使其等于最后一个值 9 var e,f,g,h; 10 a=(e=2,f=5,g=0,h=2); 11 alert(a); 12 //void运算符 13 var e,f,g,h; 14 a=void(e=2,f=5,g=0,h=2); 15 alert(a);//a为未定义 16 //获取数据类型 17 alert(typeof(b));//返回变量数据类型 number 18 //instanceof 判断对象类型,返回布尔值 19 var k = [1,2,3]; 20 alert(k instanceof Array); 21 </script>

     2018/02/24

    获取字符串特定索引处的字符

  • 相关阅读:
    Oracle 查询主外键关联
    maven
    LOG4J
    转换maven 项目为web 项目
    Iframe 高度自适应的问题
    JS 之CLASS类应用
    不要自己决定如何设计,遵从客户和客观需要
    私服搭建Nexus
    python经典算法题:无重复字符的最长子串
    Python输出hello world(各行命令详解)
  • 原文地址:https://www.cnblogs.com/whwjava/p/8465655.html
Copyright © 2011-2022 走看看