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

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

  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/whwjava/p/8465655.html
Copyright © 2011-2022 走看看