zoukankan      html  css  js  c++  java
  • 第九天学习@javascript

    问题:

    JS正则表达式

    RegExp 对象用于规定在文本中检索的内容。

    什么是 RegExp

    RegExp 是正则表达式的缩写。

    当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。

    简单的模式可以是一个单独的字符。

    更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

    您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

    RegExp 对象的方法

    RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

    test()

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

    例子:

    var patt1=new RegExp("e");
     
    document.write(patt1.test("The best things in life are free")); 

    由于该字符串中存在字母 "e",以上代码的输出将是:

    true

    例子 2:

    您可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 "g" 参数 ("global")。

    如需关于如何修改搜索模式的完整信息,请访问我们的 RegExp 对象参考手册

    在使用 "g" 参数时,exec() 的工作原理如下:

    • 找到第一个 "e",并存储其位置
    • 如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 "e",并存储其位置
    var patt1=new RegExp("e","g");
    do
    {
    result=patt1.exec("The best things in life are free");
    document.write(result);
    }
    while (result!=null) 

    由于这个字符串中 6 个 "e" 字母,代码的输出将是:

    eeeeeenull

    :在谷歌浏览器是不支持这个的!Chrom浏览器只输出一个e。

    即:

    支持正则表达式的 String 对象的方法

    FF: Firefox, IE: Internet Explorer

    方法

    描述

    FF

    IE

    search

    检索与正则表达式相匹配的值。

    1

    4

    match

    找到一个或多个正则表达式的匹配。

    1

    4

    replace

    替换与正则表达式匹配的子串。

    1

    4

    split

    把字符串分割为字符串数组。

    1

    4

    compile()

    compile() 方法用于改变 RegExp。

    compile() 既可以改变检索模式,也可以添加或删除第二个参数。

    例子:

    var patt1=new RegExp("e");
     
    document.write(patt1.test("The best things in life are free"));
     
    patt1.compile("d");
     
    document.write(patt1.test("The best things in life are free"));

    由于字符串中存在 "e",而没有 "d",以上代码的输出是:

    truefalse

    问题:

    Navigator 对象

    JavaScript Navigator 对象包含了有关访问者浏览器的所有信息。接下来我们学习 Navigator 对象的两个属性。

    appName

    保存浏览器类型

    appVersion

    存有浏览器的版本信息(其他信息中的一项)

    实例

    <html>
     
    <body>
    <script type="text/javascript">
    var browser=navigator.appName
    var b_version=navigator.appVersion
    var version=parseFloat(b_version)
     
    document.write("Browser name: "+ browser)
    document.write("<br />")
    document.write("Browser version: "+ version)
    </script>
    </body>
     
    </html>

    上面例子中的 browser 变量存有浏览器的名称,比如,"Netscape" 或者 "Microsoft Internet Explorer"。

    上面例子中的 appVersion 属性返回的字符串所包含的信息不止是版本号而已,但是现在我们只关注版本号。我们使用一个名为 parseFloat() 的函数会抽取字符串中类似十进制数的一段字符并将之返回,这样我们就可以从字符串中抽出版本号信息了。

    重要事项:在 IE 5.0 及以后版本中,版本号是不正确的!在 IE 5.0 和 IE 6.0 中,微软为 appVersion 字符串赋的值是 4.0。怎么会出现这样的错误呢?无论如何,我们需要清楚的是,JavaScript 在 IE6、IE5 和 IE4 中的获得的版本号是相同的。

    Chrome 16的结果:

    Browser name: Netscape
    Browser version: 5

    Mozilla Firefox的结果:

    Browser name: Netscape
    Browser version: 5

    IE8的结果:

    Browser name: Microsoft Internet Explorer
    Browser version: 4

    问题:

    The "RenderBody" method has not been called for layout page "~/Views/Shared/_Layout.cshtml".

    说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.Web.HttpException: The "RenderBody" method has not been called for layout page "~/Views/Shared/_Layout.cshtml".

    这个问题气死人啊!!!

    之前安装了一些补丁,我以为是,结果错杀了不少补丁。

    又重新建立SVN的项目。

    又删除了数据库的数据。

    又备份打算重装系统。

    结果,由于高人相助,发现是cookie的问题!

    把cookie删除,发现不会再有这个问题!

    原因分析:

    由于使用MVC做出来的网站,一开始需要登录,登录后便把数据保存在cookie中,然而,由于一些原因,把数据库中的用户表数据全部删除,而cookie仍旧记得用户的UserId,用这个UserId来验证,结果导致每次登录均失败。唉……

    问题:

    IE9崩溃,便卸载了IE9,想安装IE8。卸载IE9,重启,竟然回到了IE8的图标,可是,竟然不能用,一点就崩溃!于是下载IE8,想重装,却发现Win7SP1不支持IE8。不想要IE8了,想装回IE9,下载了许多版本,想弄回IE9,安装了,结果提示“未能完成安装”,然后百度,谷歌,甚至到微软去找解决方案,下载补丁,但无一例外失败了!

    终于放弃。

    由于IE的市场占有率已经从当初的80%下降到百分之二十多,因此,IE也处算不得什么大佬了,倒是火狐和谷歌大行其道,所以,干脆干掉IE,从此走上非IE时代!

    但是,由于某一些天之后,开启了360的漏洞修复,突然之间,IE8又复活了!

    实现是折腾啊!

    问题:

    JS的加密和解密?

    定义和用法

    unescape() 函数可对通过 escape() 编码的字符串进行解码。

    语法

    unescape(string)

    参数

    描述

    string

    必需。要解码或反转义的字符串。

    返回值

    string 被解码后的一个副本。

    说明

    该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

    提示和注释

    注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

    实例

    在本例中,我们将使用 escape() 来编码字符串,然后使用 unescape() 对其解码:

    <script type="text/javascript">
     
    var test1="Visit W3School!"
     
    test1=escape(test1)
    document.write (test1 + "<br />")
     
    test1=unescape(test1)
    document.write(test1 + "<br />")
     
    </script>

    输出:

    Visit%20W3School%21
    Visit W3School!

    问题:

    JS未找到对象?

    有可能是因为少写了一个花括号,因为在Vs的环境下编写JS,有时候一写快,错误提示就显得相当地不惹眼,导致没有注意到!

  • 相关阅读:
    Golang使用os/exec时产生僵尸(defunct)进程
    golang channel 用法总结
    Git常用方法
    插入排序,冒泡排序,快速排序,选择排序,归并排序 C++代码实现
    Linux 系统安装golang
    Linux 压缩解压常用命令汇总
    云主机挂载硬盘
    Linux服务器如何修改内核版本号
    关于FreePBX语音网关对接遇到的伤心事
    Asterisk13.23.1如何增加G723编码和G729编码
  • 原文地址:https://www.cnblogs.com/xiaxiazl/p/2346153.html
Copyright © 2011-2022 走看看