JavaScript中String、数组、日期、正则对象

课程回顾

  1. 引入js三种:
    • 在元素内部通过事件属性添加js代码 通常写的都是方法的调用
    • <head>里面添加<script>标签 在标签体内写js代码
    • 在单独的js文件中写代码,然后通过<script>标签的src属性引入*.js文件
  2. 数据类型:
    • 数值类型 number
    • 字符串类型 string
    • 布尔值类型 Boolean
    • 未定义类型 undefined
    • 对象类型 object
  3. 遍历声明和赋值
    • var x = 10; x=”abc”; x=true/false; var y;
  4. 类型之间隐式转换
    • 字符串: 转数值,能转直接转 不能转则转NaN;转布尔值 “”->false 其它true
    • 数值:转字符串,直接转,转布尔值 0和NaN转false 其它true
    • 布尔值:转数值 false->0 true->1 字符串直接转
    • undefined: 字符串直接转 转数值NaN 转布尔值false
    • null:转字符串直接转 转数值0 转布尔值false
  5. 运算符,==先统一类型再比较 ===先比较类型 如果相等再比较值
    • typeof 18 + 5 = “number5”
    • 除法会根据结果自动转换整数和小数
  6. 语句,写条件的地方如果不是布尔值会自动转成布尔值,for循环 int i改成var i 不支持增强for循环
  7. 方法声明
    • function 方法名(name,age){return xxx;}
    • var 方法名 = function(name,age){return xxx;}
  8. 页面相关内容
    • 通过id获取元素对象: var x = document.getElementById(“div1”);
    • 获取文本框的值和设置文本框的值
      input.value = “abc”;var x = input.value;
    • 给div添加文本内容
      div.innerText=”abc”;
    • 给div添加HTML内容
      div.innerHTML=”“;

九宫格练习 代码参见demo01

几行几列练习 代码参见demo02

String 数组 日期对象 正则

String相关内容

  1. 创建字符串的两种方式

    • var s1 = “abc”; //单引号和双引号都可以
    • var s2 = new String(“abc”);
  2. 把字符串转成数值

    • parseInt(str)//把字符串转成整数,还可以把小数转成整数
    • parseFloat(str)//把字符串转成小数
    • Number(str)//等效parseFloat
  3. 字符串转大小写

    • str.toUpperCase()//转大写 str.toLowerCase()//转小写
  4. 获取字符串出现的位置 从0开始
    var str = “abcdefgem”;
    -从前面找

    str.indexOf("e");

    -从后面找

    str.lastIndexOf("e");
  5. 截取字符串 从0开始

    str.substring(start,[end]);
  6. 替换字符串

    `str.replace(old,new);

    color
    var x = “

    “;
    x.replace(“[c]”,color);`

  7. 拆分字符串
    str.split(“.”); //返回值是个数组

    数值相关:四舍五入

    18.23456.toFixed(4); // 18.2346

    数组相关

  8. 创建数组 数组内部可以添加任意类型的数据

    • var arr1 = [“小明”,18,true];
    • var arr2 = new Array();
  9. 往数组中添加内容

    arr2.push(“张学友”);
    arr2.push(28);
    arr2.push(true);

  10. 修改数组的长度
    arr1.length = 2;

  11. 遍历数组
    for(var i=0;i<arr1.length;i++){

    alert(arr1[i]);

    }

  12. 数组反转
    arr.reverse();

  13. 数组排序 默认排序方式是以字符串的形式进行排序 排序规则是通过Unicode编码进行排序
    arr.sort();

    • 自定义排序:

      //自定义排序需要准备一个自定义的排序方法
      function sortfn(a,b){

       return a-b;//升序
      //return b-a;//降序

      }
      alert(arr.sort(sortfn));

      日期相关函数

  • 服务器时间和客户端时间

    1. 获取客户端时间
      var d1 = new Date();
    2. 2018/9/30 14:35:32 把字符串时间转成时间对象
      var d2 = new Date("2018/9/30 14:35:32");
    3. 从时间对象中获取和设置时间戳(距离1970年1月1日 08:00:00)
      d2.getTime();
      d2.setTime(1000); 1970/1/1 08:00:01
    4. 获取时间分量 单独的年 月 日 时 分 秒 星期几
      d1.getFullYear();
      d1.getMonth();//从0开始
      d1.getDate();
      d1.getDay();//星期
      d1.getHours();
      d1.getMinutes();
      d1.getSeconds();
    5. 获取年月日 获取时分秒
      d1.toLocaleTimeString();
      d1.toLocaleDateString();

      正则表达式

      . :匹配任意字符除了换行
      \w:匹配任意数字、字母、下划线
      \d:匹配任意数字
      \s:匹配空白
      ^: 开头
      $: 结尾
  • 应用场景:1. 查找内容 2. 校验文本

    //第一种创建方式:第一个/代表的是规则
    //第二个参数表示模式
    //(i:忽略大小写 g:全局查找)
    var reg1 = /^a/i; //以a开头 忽略大小写
    //以m结尾
    reg1 = /m$/;
    //包含两个数字
    reg1 = /\d{2}/;
    //以3个数字开头
    reg1 = /^\d{3}/;
    //以y开头m结尾中间包含5位数字
    reg1 = /^y\d{5}m$/;
    //6-10位数字字母下划线
    reg1 = /^\w{6,10}$/;
    //第二种创建方式第一个参数是格式,第二个是模式
    //第二个参数如果没有值可以省略
    var reg2 = new RegExp(“^\w{6,10}$”);

    //和正则相关的方法
    //1. 查找内容
    var str = “you can you up no can no b b”;
    var reg = /no/g;
    //查找内容 如果全局查找 每执行一次查找一个
    //执行第二次查找下一个 找不到时得到null
    //alert(reg.exec(str));//no
    //alert(reg.exec(str));//no
    //alert(reg.exec(str));//null
    //2. 校验方法
    //reg = /^You/i;
    //alert(reg.test(str));
    //字符串和正则相关的方法
    //3. 查找内容 一次性得到所有查找内容
    //var arr = str.match(reg);
    //alert(arr);
    //4. 查找替换 替换所有
    alert(str.replace(reg,”bu”));

QAQ感谢你的支持=w=