随笔分类 - JavaScript
摘要:分组/捕获 魔芋: 01,小括号(又称为圆括号)会产生子表达式(又称为分组,子串)。可以在正则中\1,\2来引用子表达式匹配的文本值。 这些子表达式会被临时缓冲区缓存起来。所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。 缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。
阅读全文
摘要:【】定位,定界,限定符。定位符用来描述字符串或单词的边界,^和分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。正则表达式的限定符有:匹配字符串开始的位置。如果设置了RegExp对象的Multiline属性,还会与\n或\r之后的位置匹配。 匹配字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r...
阅读全文
摘要:【01】总 限定符 用来指定正则表达式的一个给定的字符组合必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。 【】魔芋:这样的都是优先匹配最长字符串的。所以称为贪婪匹配。 比如:/a+/ 会匹配“aaaaa”的aaaa。而不是a \?\*\+ 表示匹配字符串”?*+”
阅读全文
摘要:【01】总 01,方括号用于查找某个范围内的字符。 02,(魔芋:这里匹配的还是字符串的单一字符。) 03,字符类是一组在方括号内的字符,表示可以匹配其中的任何一个字符。将直接量字符单独放进方括号内就组成了字符类(character class)。 正则表达式c[aeiou]t,表示可以匹配的字符串
阅读全文
摘要:【01】总魔芋:在字符串中匹配单一字符。01,元字符(Metacharacter)是拥有特殊含义的字符:02,大写字母都是“非”的意思。元字符.查找单个字符,除了换行和行结束符。 (就是一个点“.”,英文输入法时的句号)\w匹配字母数字下划线,等同于:[a-zA-Z0-9_]。任何ASCII单字符。(也可以选择单独的字母。比如说/a/g就是选择a)\W匹配除字母数字下划线外的任何字符。任何ASCI...
阅读全文
摘要:【04】正则的概念01,正则表达式,就是用匹配符来在字符串中寻找内容。和Date一样,它只是一种具有实用API的特殊对象。02,RegExp 对象(英语:Regular Expression,在代码中常简写为regex、regexp或RE)表示正则表达式,它是对字符串执行模式匹配的工具。【05】非打印字符转义序列:字符 描述\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-...
阅读全文
摘要:对RegExp执行typeof运算的结果并不统一,在有些浏览器中返回“function”,在有些中返回“object”。 谷歌: 火狐 IE: ** 谷歌: 火狐 IE: 谷歌: 火狐 IE: 火狐 IE: IE: ** **
阅读全文
摘要:【00】正则表达式 - 字符(总) 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了
阅读全文
摘要:魔芋:事实上,我是反感一些特殊的名词。一些名词看上去就让人感觉到抗拒。关于一个概念用不同的名词来定义,简直是太糟糕了。举个例子:匹配一个后面带有exp2的exp1的正则。写法:exp1(?=exp2)如匹配名字叫xianlie,但不姓zhao的人:/zhao(?=xianlie)/但是,不同的地方(书籍,网络博客,视频,他人沟通中)的取名不一样。比如:前瞻断言先行断言零宽度正预测先行断言其他问题:...
阅读全文
摘要:魔芋:学习正则时,了解了正则的大部分语法和用法后,通读了这篇文章,了解了正则的实际运行过程。才知道了正则的回溯会失控。不过,只有深入原理才能写出更好的正则代码。作者:小胡子哥。原文地址:http://www.cnblogs.com/hustskyking/p/how-regular-expressions-work.html你写的任何一个正则直接量或者 RegExp 都会被浏览器编译为一个原生代码...
阅读全文
摘要:【08】原始类型和引用类型的区别01,原始值是不可更改的:任何方法都无法更改(或“突变”)一个原始值。引用值是可变的。02,原始值的比较是值的比较:只有在它们的值相等时它们才相等。对象的比较并非值的比较:即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素完全相等的两个数组也不相等。var o = {x:1}, p = {x:1}; // 具有相同属性的两个对象 o =...
阅读全文
摘要:javascript有哪几种数据类型六种基本数据类型undefinednullstringbooleannumbersymbol(ES6)一种引用类型Object**
阅读全文
摘要:创建Object的方式有4种。方式一:通过对象字面量表示法(又称为直接量、原始方式)。var obj = {name:"moyu"};方式二:通过new和构造函数Object()、String()等。var obj = new Object();方式三:自定义一个对象的构造函数,然后实例化对象。function a(o){this.name = "moyu"}var obj = new a(); ...
阅读全文
摘要:javascript跨域通信同源:两个文档同源需满足协议相同域名相同端口相同跨域通信方法:01,通过设置img,script,link,iframe元素的src,href属性为目标url。02,请求JSON数据,使用进行jsonp请求。03,设置内部服务器代理,请求跨域url。返回数据。04,CORS功能。目标服务器的HTTP响应头为“Access-Control-Allow-Origin:*”即...
阅读全文
摘要:01,数组去重。将数组里面重复的元素去掉。var arr = ["mo","yu","mo"];变为arr = ["mo","yu"];02,要求:一个函数,输入原数组,返回新数组。原数组不变。03,利用indexOf思路:在新数组里是否已经存在了。let arr = ["mo","yu","mo",1,5,1,78]; function unique(arr){ let brr =[]...
阅读全文
摘要:【02】[].slice和Array.prototype.slice01,Array是一个构造函数。浏览器内置的特殊对象。 02,Array没有slice方法。03,Array.prototype原型上有方法slice()我们可以用Array.prototype.slice或者Array的实例[].slice都行,但不能Array.slice 04,Array.prototype.slice.c...
阅读全文
摘要:判断某个对象是否是数组?01,typeof 对于Function, String, Number ,Undefined 等几种类型的对象来说,可以胜任。var arr=new Array("1","2","3","4","5"); alert(typeof(arr));//object 但是,对于Array不行。02,instanceOf返回一个 Boolean 值,指出对象是否是特定类的一个实例...
阅读全文
摘要:【03】图解原型和原型链一图胜前言 请先结合图解原型和原型链这张图。可以分为4种情况。情况1:Object有:constructor:是Function。__proto__:是Function.prototypeprototype(是一个对象。)constructor:Object__proto__:Null情况2:Function有:constructor:Function自身__pr...
阅读全文