zoukankan      html  css  js  c++  java
  • 《Vue.js》p102案例中的正则表达式的解析

    《Vue.js实战》 一书 p102 有一个判断参数值是否为数值的正则表达式,援引如下:

    function isValueNumber(value) {
                return (/(^-?[0-9]+.{1}d+$)|(^-?[1-9][0-9]*$)|(^-?0{1}$)/).test(value + '');
            }

    试解析如下:

    1)表达式中有 3 个子表达式

    2)第一个子表达式 

    ^-?[0-9]+.{1}d+$

    起始的脱子符^表示匹配的条件是行的开头。

    结尾处的 $符号表示匹配的行末尾。

    -?,表示匹配0到1个 -。

    字符组[0-9]+,表示 匹配0至9中的任意一个数字,后面的+号,表示匹配1个或无数个数字。

    .,表示转义 . 符号,匹配一个 .。

    后面的{1},表示匹配.的数量为1。

    d,表示匹配一个数字,后面的+号,表示匹配1个或无数个数字。

    2)第二个子表达式

    ^-?[1-9][0-9]*$

    首尾的^$含义同上。

    -?表示匹配0到1个 -。

    [1-9]匹配1到9中的任意一个数值。

    [0-9]匹配0至9中的任意一个数值。后缀*号,表示匹配数量为0到任意个。

    3)第三个表达式

    ^-?0{1}$

    表示匹配一个 - 符号。

    后跟一个0,数量为1。

  • 相关阅读:
    LeetCode124 二叉树中的最大路径和
    LeetCode100 相同的树
    LeetCode206 反转链表
    LeetCode460 LFU缓存
    LeetCode876 链表的中间结点
    hdu2767 强连通分量
    hdu1827 强连通分量
    模板 tarjan算法
    hdu2227 树状数组优化dp
    割点和桥
  • 原文地址:https://www.cnblogs.com/sx00xs/p/12677355.html
Copyright © 2011-2022 走看看