• JavaScript学习笔记


     

     

    * 正则表达式

    js中使用正则表达式可以通过RegExp对象或String对象,其中RegExp对象定义正则表达式有两种方式,一是普通方式,二是构造函数的方式。

    RegExp对象解析:

    普通方式:

    语法:var reg=/表达式/附加参数

    如:var reg=/ab+/;

    构造函数方式:

    语法:var reg=new RegExp(“表达式”,”附加参数”),也可以不写附加参数。

    如:reg=new RegExp("[0-9]");

    reg=new RegExp("[0-9]","g");

    附加参数:用来扩展表达式的含义,主要有以下三个参数。

    g:代表可以进行全局匹配

    I:代表不区分大小写匹配

    m:代表可以进行多行匹配

    RegExp对象的方法和属性:   

    test():检索字符串中正则表达式匹配的值,如果找到了返回true,否则返回false;

    exec():检索字符串中正则表达式匹配的值,如果找到了则返回匹配值,否则返回空字符串;如果字符串中有多个正则表达式匹配的值,那么exec方法会将这些值全部返回,各值之间用","连接;返回的值是最后一次正则表达式匹配得到的值。

    如:reg=/(a|b)jj/;->如字符串为"ajj",那么结果为"ajj,a",返回的值是最后一次正则表达式匹配得到的值。

     reg=/(1|2){2,3}/;->1或2出现至少2次,至多3次;如111,121,212,如果字符串为"221",那么返回的值为"221,1"。

     

    global:用于确定正则表达式中是否具有标志g,返回true或false

    ignoreCase:同上所述,是否具有标志i

    multiline:同上所述,是否具有标志m

    语法:

    正则表达式对象实例.test(字符串)

    正则表达式对象实例.exec(字符串)

    String对象解析:

    match():检索字符串中指定的值,如果找到了返回匹配值,否则返回null;

    语法:字符串对象.match(字符串或RegExp对象)

    replace():替换与正则表达式相匹配的值

    语法:字符串对象.replace(字符串或RegExp对象(被替换),”替换的字符串”)

    split():把字符串分割为字符串数组

    字符串对象.split(字符串或RegExp对象,n)

    n为限制数组中元素的个数,如果不设置n,则没有限制。

    正则表达式中常用的符号和用法:

    符号

    描述

    /.../

    代表一个模式的开始和结束

    ^

    匹配字符串的开始

    $

    匹配字符串的结束

    s

    任何空白字符

    S

    任何非空白字符

    d

    一个数字字符

    D

    除了数字之外的任何字符

    w

    一个数字、下划线或字母

    W

    任何非w字符

    .

    除了换行符之外的任何字符

    +

    匹配前一项1次或多次

    *

    匹配前一项0次或多次

    匹配前一项0次或1次

    {}

    可以没上限,不能没下限

    {n}->匹配前一项n次

    {n,m}->匹配前一项至少n次,至多m次

    {n,}->匹配前一项n次或更多次

    {,n}->错误写法,得不到任何结果

    []

    [abcd]->a、b、c、d中任何一个字符

    [a-z]->a至z中任何一个字符

    [a-zA-Z]所有英文字母

    [9-0]->错误写法,会导致字符集越界,js出错

    [^0-9]不能是0至9中任何一个字符

    |

    hi|hello->匹配hi或hello

    ()

    a(b|c)d->a和d中间为b或c

    注意:

     正则表达式如果匹配正确,那么不会再往下匹配了。如果想要将通配符转化为普通字符来匹配,那么需要使用反斜杠来进行字符转义。如reg=/./;就是将点号变为普通字符。

     

    常用正则表达式

     

     

    * prompt()

    prompt()的第二个参数如果省略,那么就会在文本框中出现“undefined”;如果单击取消或关闭按钮,就会返回null;如果单击确定,就会返回输入文本框中的字符串。

     

    * 数组

    这个里面的数组是一个可以包含任何类型的数组,例如在一个数组中可以放不同类型的元素;

    为数组元素赋值有以下几种写法:

    var fruit=new Array(2);

    fruit[0]="苹果";

    fruit[1]="橘子";

     

    var fruit=new Array("苹果","橘子");

     

    var fruit=["苹果","橘子"];

     

    输出fruit,结果为:苹果,橘子;

     

    有一种错误写法:var fruit=("苹果","橘子");这样写它会把最后一个字符串(橘子)拆分成字符串数组,但是遇到不是字符串的就会出错,如var fruit=("苹果","橘子",12345);fruit.length=undefined;但是输出fruit,结果却为12345;

     

    <script type="text/javascript">

    var fruit=("苹果","橘子");

        for(var i in fruit){

          document.write( fruit[i])

    }

    document.write(" "+fruit.length);

    </script>

     

    输出:橘子 2

     

    如果不为字符串定义定义长度,如var fruit=new Array();那么长度就会默认为0,fruit[100]=undefined;这个数组中所有元素的值都为undefined;

     

    * parseInt()、parseFloat()、isNaN()

    var num=parseInt("+-0sdf");

      document.write(num);

    输出:NaN

     

    var num=parseInt("-0sdf");或var num=parseInt("+0sdf");

      document.write(num);

    输出:0

     

    var num=parseInt(".0sdf");

      document.write(num);

    输出:NaN

     

    var num=parseInt("11.23sdf");

      document.write(num);

    输出:11

     

    parseFloat()方法与parseInt()大致相同,有一些区别:

    var num=parseFloat(".0sdf");

      document.write(num);

    输出:0

     

    var num=parseFloat(".1sdf");

      document.write(num);

    输出:0.1

     

    var num=parseFloat("11sdf");

      document.write(num);

    输出:11

     

    var num=parseFloat("11.23sdf");

      document.write(num);

    输出:11.23

     

    isNaN()方法:

    默认值为true

     document.write(isNaN("12.2")),结果为false,它会把字符串转化为数值;

     

    *

    数组和null是object类型的,NaN是number类型的;

     

    * 自定义函数

    function show(n){},不能写成function show(var n){};

     

    * onload()

    在网页中,每次前进或后退都会刷新页面;

    onload和location是打开一个新页面(可以前进和后退的)

    onload必须等待网页中所有的内容(包括脚本)加载完毕后才能执行,onload打开新页面是因为函数;

    如:

    function show(){

    var today=new Date();

    document.write(today)

    }

          location='两数运算.HTML'     

    </script>

    </head>

     

    <body onload= show()>

    它会先链接到'两数运算.HTML',这个onload就永远都出不来了。

     

    * close()

    close()这个方法如果在<script>标签中可以执行,但是直接在HTML标签中写就必须写成window.close();

    关闭窗口时,只关闭本窗口。

     

     

    *

    在函数中输出文字到屏幕上(与body中的HTML代码无关),他就会打开一个新页面(可以前进或后退)显示内容。

    如:

    <script type="text/javascript">

    function changeLink(){

     document.write("khkhjkhkjhk");

    }

     

    </script>

     

    </head>

     

    <body >

    <input name="b1" type="button" value="改变层内容" onclick="changeLink()"/>

    </body>

     

    *

    document.getElementById()

    document.getElementsByName()

    document.getsElementByTagName()

    以上三个方法必须写在函数里才能被使用。其中document.getElementById()是返回对拥有指定ID的第一个对象的引用,如一个div的对象的引用为[object HTMLDivElement];而p的对象的引用为[object HTMLParagraphElement];如果找不到,就会返回null。

    如:

    <script type="text/javascript">

    function show(){

    document.write(document.getElementById("all").checked);

    }

    </script>

     

    </head>

     

    <body>

    <input id="all" type="checkbox" value="1" onclick="show()"/>全选<br />

    </body>

     

    不能直接输出document.getElementsByName("all")和document.getElementsByTagName("input");系统会提示拒绝访问。

    :

    var s= document.getElementsByName("all");

    document.write(s);

    直接输出document.getElementById("all"); 结果会是null;

    如:

    var s= document.getElementById("all");

    document.write(s);

     

    *

    日期的getDay()返回的值介于0~6之间,getMonth()返回的值介于0~11之间。

     

    *

    <h1>服饰</h1>哈哈,只有服饰变成1号字体;

    <h1>服饰<h1>哈哈,服饰和哈哈都变成1号字体;

     

    *

    可见性过滤选择器:hidden,只对display有用,对visibility没用。

    display:none;是将元素隐藏,并且元素会从页面上移走。

    visibility:hidden;也是将元素隐藏,但是元素还是在原来的位置,只是看不见而已。

     

    *

    toggle()方法叫做套索;

    toggle()方法可以切换元素的可见状态,如果被选元素可见,则隐藏这些元素,反之。

    toggle(true)显示被选元素,反之。

    toggle(function1,function2),单击被选元素调用function1,再单击被选元素调用function2,一直循环。

    $("h1:gt(0)").toggle();这个方法也可以将下标大于0的元素都隐藏,并且元素会从页面上移走。

     

    *

    click()方法中如果放了多个函数,如click(function1,function2,function3,function4),那么他会默认调用第二个函数。

     

    *

    当使用对象的函数(如click())时,系统会默认为bind()绑定时间。

    bind()绑定时间只对一开始的数据有用,后来新增的数据没有效果。

    live()对一开始的数据和后来新增的数据都有用。

     

    *

    html()获取的是在网页中的样子,

    如;<div id="emailId">我            你</div>

    那么这个的html()就是“我            你”,但是在网页中显示空格要用 ,这样用回车键打出的空格,不管有多长,都只算做1个空格。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    第二章作业
    算法第五章作业及学期总结
    71 最大子列和问题 | 采用二分法+递归
    算法第一章作业
    算法第四章作业
    算法第三章作业
    Windows charles安装、配置及Android手机ca证书
    git出现fatal: Authentication failed for 'http:xxxx.git/''错误的解决办法
    如何用c#将十六进制转换成字符串?
    系统配置win7(64位),vs2010,没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  • 原文地址:https://www.cnblogs.com/syjp/p/11081925.html
Copyright © 2020-2023  润新知