首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《你不知道的JavaScript》:值类型坑2

js中只有一种数值类型,即number,包括"整数"和带小数的十进制数。js中其实是没有真正意义上的整数的,这个整数就是没有小数的十进制数。js使用的双精度格式。...一般这种情况比较少,如果是简单的比较操作,可以通过转换为字符串来实现,如果确实需要对大数值进行数学运算,则需要借助相关工具库。...在js中引用指向的始终是值。 js对值和引用的赋值在语法上没有区别,完全根据值的类型来决定。...基本类型值总是通过值复制的方式来赋值/传递,包括`null、undefined、字符串、数字、布尔和ES6中的symbol。引用类型值则总是通过引用复制的方式来赋值/传递的,包括数组、封装对象等。...); // [1, 2, 3, 4] console.log(d); // [1, 2, 3, 4] 另外还有两个特殊类型的值,null和undefined。

50410

关于JS的正则表达式0.前言1.捕获2.非捕获3.匹配模式彩蛋:

原文来自我的github 0.前言 本文主要介绍了捕获和非捕获的概念,并举了一些例子,这些都是正则表达式在js中进阶的一些用法。...后面有彩蛋哦 1.捕获 1.1RegExp对象的相关属性 一般用()括住的就是捕获组,而且类似于算术中的括号,从左到右,逐层去括号。...比如存在(A)((B)C)这种,他捕获到的将会是(A)((B)C)、(B)、((B)C),并在内存中存放,可以通过RegExp对象的$属性来访问到。...另外,简写的话还是有很多不兼容的问题的,最好写全称 1.2数字的反向引用 有的人就问,用正则怎么匹配AABB类型的词语?比如高高兴兴、亮晶晶这些。...jQuery作者的正则,号称世界上最强的选择器sizzle,就是强大正则做出来的(晚点再更新sizzle解读)

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Perl正则表达式:正则匹配

    ⑴匹配模式 我们已知在Perl中正则表达式被称为模式,这种模式(也即正则表达式)可以放在由成对符号(例如()、、{}等)或者一对不成对的符号(例如//、!!...$what可以是任何值,甚至是正则表达式元字符,如下所示: ⑸捕获变量 在上一小节正则表达式的模式分组中,我们知道圆括号通常会触发正则表达式捕获相匹配的字符串以供反向引用。...事实上,Perl会自动将这些圆括号内的捕获组储存在称为捕获变量的标量变量里面,其变量名与反向引用的编号一样都是数字,其命名与捕获组编号相同,也即$1、$2…。...模式当中有多少圆括号,就有多少捕获变量,这些变量在正则表达式匹配完成之后仍可以使用,捕获变量是Perl正则表达式强大的原因之一。...\n"; } 运行结果如下所示: 这些捕获变量在下一次正则表达式成功匹配之前都是有效的,如果某次匹配失败,那么捕获变量里储存的仍是上一次成功匹配时的数据,这里的匹配成功指的是整个模式的匹配而非捕获组的匹配

    4.2K10

    Perl正则表达式超详细教程

    perl的分组捕获和分组引用 分组的基本应用 在基础正则中,使用括号可以对匹配的内容进行分组,这种行为称为分组捕获。捕获后可以通过\1这种反向引用方式去引用(访问)保存在分组中的匹配结果。...,N中,它们和\1,\2,...\N在匹配成功时的结果上没有区别,但是\N这种类型的反向引用只在正则匹配中有效,正则匹配结束后就消亡了,而N因为是perl的变量,即使正则已经退出匹配,也依然可以引用。...\\2: $2\n"; 有两点需要注意: 这些分组可能捕获到的是空值(比如那些允许匹配0次的量词),但是整个匹配是成功的。...\1是每个正则匹配都相互独立的,而$1则保存分组捕获成功的值,即使这次值是上次捕获的。...实际上,后一种引用方式的本质是perl将命名捕获的内容放进了一个名为%+的特殊hash类型中,所以可以使用$+{NAME}的方式引用,如果你不知道这一点,那就无视与此相关的内容即可,不过都很简单,一看就懂

    6.2K30

    CA1815:重写值类型上的 Equals 和相等运算符

    值 规则 ID CA1815 类别 “性能” 修复是中断修复还是非中断修复 非中断 原因 值类型未重写 System.Object.Equals 或未实现相等运算符 (==)。 此规则不检查枚举。...默认情况下,此规则仅查看外部可见的类型,但这是可配置的。 规则说明 对于非 blittable 值类型,Equals 的继承实现使用 System.Reflection 库来比较所有字段的内容。...如果希望用户对实例进行比较或排序,或者希望用户将它们用作哈希表键,则值类型应实现 Equals。 如果编程语言支持运算符重载,则还应提供相等和不等运算符的实现。...如何解决冲突 若要解决此规则的冲突,请提供 Equals 的实现。 如果可以,请实现相等运算符。 何时禁止显示警告 如果不会将值类型的实例进行相互比较,可禁止显示此规则的警告。..., internal 示例 以下代码显示了违反此规则的结构(值类型): // Violates this rule public struct Point { public Point(int

    57800

    Perl正则表达式:字符与字符集

    ⑴元字符 正则表达式语言由两种基本字符类型组成:原义文本字符和元字符(metacharacter)。...在Perl中,反斜杠\就是一个特殊的元字符,要想匹配元字符本身(而不是他在正则表达式里面的含义),可以在相应的元字符之前加反斜杠,例如'\.'...⑵模式分组与捕获 在Perl的正则表达式中,圆括号()也是一个特殊的元字符,用来对字符串进行分组,很多元字符只对单个字符进行操作,进行分组后可对多个字符进行操作,如下所示: fred+ #可匹配freddddd...dabba y(.)(.)\2\1 #匹配y开头后面两个任意字符,然后接下来是这两个字符的倒序的单词,这是匹配类似yabba的这种回文结构 y((.)(.)\3\2) d\1 #嵌套结构的反向引用...\g{-1}11 #匹配类似于xaa11这样的字符 相对反向引用使用负号来指左边的捕获组,-1则为在左边最靠近引用位置的捕获组,这种写法避免了在另外加入括号之后所有编号都必须修改的窘况,更有利于程序维护

    1.2K20

    Perl正则表达式(2) – 用正则表达式进行匹配

    大家好,又见面了,我是你们的朋友全栈君。 Perl正则表达式 2. 用正则表达式进行匹配 2.1 用 m// 进行匹配 到目前为止,我们都是讲正则表达式的内容写在一对斜线内,如/fred/。.../p 只在当前正则表达式中开启自动捕获变量 2.3 锚位 默认情况下,如果字符串的开头不匹配给定模式,就会顺移到下一个字符位置继续尝试。为了让模式只匹配固定位置上的字符我们可以设置模式锚位。...捕获变量保存的是字符串,它实质上是标量变量。 默认变量名称为1,2,其中n代表第几对括号中所捕获的字符串内容。 匹配失败时,3为空字符串,但是未定义100的值为undef。...2.5.1 捕获变量的生命周期 捕获变量(如1,2)的生命周期是指捕获变量中的值可以保存多久;捕获变量中的内容一般会保持到下次成功匹配为止,即匹配失败的手不会改动上次成功匹配的内容,而成功匹配将会刷新捕获变量中的值...saurus (stack|burger)/n) { print "Fred wants a $1\n"; } #使用//n关闭全部正则表达式中的捕获功能,此时$1和$2的值均为undef

    2.1K20

    Perl快速入门学习

    ”简单重复的劳动”,把更多的精力放在程序设计和正则表达式上; Perl的mod_perl 的模块允许 Apache web 服务器使用 Perl 解释器。...Perl支持捕获括号()我们叫元组与非捕获类型括号(?...:...)表示只分组不补捕获;12() #元组匹配成功之后Perl可以用1 2 注意事项: 在元组中子表达式的编号安装开括号的出现先后排序,从1开始子表达式可以嵌套例如(Washington(.DC)...如果只是希望分组,也可以使用()但副作用是他们捕获的文本任然会保存在特殊的变量之中; 3.Perl正则中的环视功能 (?...] perl]$perl -w demo4.pl Please input 86 F or 30 C : 76F 24 C And 76.00 F 基础示例2:使用正则表达式修改文本 描述:Perl和其他许多语言提供的一个正则表达式特性

    2.4K20

    正则表达式【Pattern 】

    正则表达式的构造摘要 的 非捕获组 构造匹配 字符x字符 x\\反斜线字符 \0n带有八进制值 0 的字符 n (0 值 0 的字符 nn (0 值 0 的字符 mnn(0 值 0x 的字符 hh \uhhhh带有十六进制值 0x 的字符 hhhh\...字符类运算符的优先级如下所示,按从最高到最低的顺序排列: 1  字面值转义  \x 2  分组[...] 3  范围a-z 4  并集[a-e][i-u] 5  交集[a-z...与组关联的捕获输入始终是与组最近匹配的子序列。如果由于量化的缘故再次计算了组,则在第二次计算失败时将保留其以前捕获的值(如果有的话)例如,将字符串 "aba" 与表达式 (a(b)?)...与 Perl 5 相比较 Pattern 引擎用有序替换项执行传统上基于 NFA 的匹配,与 Perl 5 中进行的相同。 此类不支持 Perl 构造: 条件构造 (?{X}) 和 (?

    50740

    Perl正则表达式:文本处理

    ①替换修饰符 可以看出,替换部分也可以使用捕获变量。s///可以直接对变量数据进行修改,其返回值为布尔值,表示是否成功替换。...⑵拆分模式 split是拆分模式的正则表达式,会根据模式匹配结果拆分字符串,其第一个参数为正则表达式,第二个参数为要拆分的字符串,返回值为拆分后的子字符串列表,假如有空子字符串,默认开头和中间的会被保留...在分割模式下正则表达式里需要避免使用捕获圆括号(分组可以使用(?:)代替)。...,在列表上下文中返回值为捕获变量的列表;而在全局匹配模式m//g中,匹配字段可以有多个,这时候绑定操作符会依次返回所有匹配的捕获变量(如果没有捕获括号,则返回模式匹配的字符串),那么在列表上下文中返回的就是匹配字段的列表...(*零个字符+一个字符),这种回溯运行机制有时会使运行速度变慢。

    4.9K10

    正则表达式介绍与使用

    1956年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为”神经网事件的表示法”的论文,引入了正则表达式的概念。...虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性若采用这种方法搜索动态文本,即使不是不可能至少也会变得很困难。...xtended RegEx 简称 EREs) Perl的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs) 正则表达式的详解 正则表达式基础组成部分...:)表示只分组不捕获,而且这里?和表示匹配数量限定符无任何联系,简单的说以 (?) 开头的组是非捕获组,它不捕获文本也不针对组合计进行计数。 如果小括号中以?...=s\b)/WeiyiGeek\047/g; print $str' # My Name is WeiyiGeek's #示例2.逆序环视 #比如实现上面4需求,但是它又非常特殊实际上没有匹配任何字符

    1.7K20

    「Z投稿」Zabbix硬件监控

    脚本:通过在管理服务器上编写shell、python、perl等脚本在系统层面抓取硬件信息,这种 方式可以根据自己的监控需要更加灵活的使用各种方法抓取你想要的数据。...snmptrap[regexp]:捕获与regexp中指定的正则表达式匹配的所有SNMP trap。...如果regexp未指定, 则捕获任何trap。 snmptrap.fallback:捕获未被该接口的任何snmptrap[]监控项捕获的所有SNMP trap。...在Zabbix配置syslog规则的两种方式。 1、常规的日志监控,利用全局的正则表达式过滤出包含需要告警的日志: ? ? 这种方式有个弊端,由于这个表达式中有长度限制,故无法写入很多的规则。...2、全部接收syslog,然后一条规则配置一个触发器,这种方式也有一些缺点,就是日志全部接收,会占用比较多的数据库空间。 ?

    1.6K20

    正则表达式介绍与使用

    1956年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为”神经网事件的表示法”的论文,引入了正则表达式的概念。...虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性若采用这种方法搜索动态文本,即使不是不可能至少也会变得很困难。...RegEx 简称EREs) Perl的正则表达式(Perl Regular Expression 又叫Perl RegEx 简称PREs) ?...:)表示只分组不捕获,而且这里?和表示匹配数量限定符无任何联系,简单的说以 (?) 开头的组是非捕获组,它不捕获文本也不针对组合计进行计数。 如果小括号中以?...=s\b)/WeiyiGeek\047/g; print $str' # My Name is WeiyiGeek's #示例2.逆序环视 #比如实现上面4需求,但是它又非常特殊实际上没有匹配任何字符

    1.2K10

    梳理正则表达式发展史

    遵循 POSIX 规则的正则表达式,称为 POSIX 派系的正则表达式。Unix 系统或类 Unix 系统上的大部分工具,如 grep 、sed 、awk 等都属于 POSIX 派系。...作者看来 ERE 实际上是 BRE 的一个扩展标准,开发者使用 ERE 能书写更简单的正则表达式,不需要对某些字符进行特殊转义。...PCRE 与 Perl Perl1 提供了正则表达式操作符——是通用脚本语言的首创; Perl2 补充 /i 量词,能够进行不区分大小写匹配等; Perl3 支持 /e 量词,能够增强替换运算符的能力;...{min,max} 区间量词等; Perl5 添加 非捕获的括号,忽略优先的量词,顺序环视功能等。...例如:在多选分支结构直接使用 | 即可(1|2 表达 1 或者 2) 更简洁 在兼容 POSIX 字符组的基础上还支持更简洁的写法。

    2.2K40

    正则表达式详解

    :放在第一个选项前来消除这种副作用。    其中?:是非捕获元之一,还有两个非捕获元是?=和?!...这称为“逆向引用”,并且此类型的组称为 “捕获组”。...=> example ) 一类特殊的非捕获组是 “向前查找组” ,它包括两种类型: “正向前查找组”和 “负向前查找组” 。...8.posix和perl标准的正则表达式区别 PHP同时使用两套正则表达式规则,一套是由电气和电子工程师协会(IEEE)制定的POSIX Extended 1003.2兼容正则(事实上PHP对此标准的支持并不完善...匹配0或者1 * 匹配 0 个或多个前面指定类型的字符 + 匹配 1 个或多个前面指定类型的字符 POSIX兼容正则和PERL兼容正则“[]之外”“不一致”的元字符: .

    1.4K10

    正则表达式在 ES2018 中的新写法

    最后,如果在正则表达式中使用了命名捕获组,则将它们放在 groups 属性中。 在代码中, groups 的值为 undefined ,因为没有被命名的捕获组。 负向先行的构造是 (?!...) 。...Perl支持与 JavaScript 相同语法的命名组( JavaScript 已经模仿了 Perl 的正则表达式语法)。 Java也使用与Perl相同的语法。...→ 5:5:5 与编号的捕获组类似,可以将命名的捕获组插入到 replace() 方法的替换值中。...第一个捕获组的值将作为函数的第二个参数提供,第二个捕获组的值将作为第三个参数提供: 1const str = 'War & Peace'; 2 3const result = str.replace(/...最后,Unicode 属性转义在正则表达式中提供了一种新类型的转义序列。 在构建复杂的模式时,使用正则表达式测试程序通常很有帮助。

    96520

    刨根究底正则表达式之二——正则表达式基础

    、*、{0,}、{0,m}、{,m}(逗号“,”前面为空的这种写法仅部分正则引擎支持,不推荐这种写法); (2)  下面这些元转义序列: 引用:\num、\g{num}、\gnum、\k{name}、\...k、\k'name'(如果引用的是文本,则匹配字符,如果引用的是位置或空字符串,则匹配的是位置); (3)  特殊构造(特殊结构):捕获分组(sub-regex)、命名捕获分组(?...对于字符串“Regex”而言,是由五个字符以及六个位置构成的,理解这一点对于正则表达式的匹配原理的理解很重要。 2....受《精通正则表达式》一书中“最左原则”、“最长原则”以及衍生的“最左最长原则”的启发,在此基础上我进一步推广扩展,总结为八大原则。...; 2)  最长原则(即长度优先原则):如果在字符串中的某个位置存在多个可能的匹配,将返回最长文本(即最多字符)的那个匹配; 3)  先到先得原则(即顺序优先原则):在同一个位置上,如果有多个长度不同的匹配结果

    1.2K50

    Julia(字符串)

    这只是一种特殊的32位原始类型,其数字值表示Unicode代码点。 与Java中一样,字符串是不可变的:AbstractString对象的值无法更改。...要构造一个不同的字符串值,请从其他字符串的一部分构造一个新的字符串。 从概念上讲,字符串是从索引到字符的部分函数:对于某些索引值,不返回任何字符值,而是引发异常。...性格 甲Char值代表单个字符:它仅仅是一个32位的原始类型用特殊文字表示和适当的算术行为,其数值被解释为Unicode代码点。...如下所述,正则表达式,字节数组文字和版本号文字是非标准字符串文字的一些示例。元编程部分中提供了其他示例。 常用表达 Julia具有PCRE库提供的与Perl兼容的正则表达式(regexes)。...这种形式使您可以使用字符串表示法来表示文字字节数组,即UInt8值数组。字节数组文字的规则如下: ASCII字符和ASCII转义产生单个字节。 \x八进制转义序列产生对应于转义值的字节。

    4K10
    领券