你这个地方加不加g无所谓的,g表示多次匹配,只有在需要对每个匹配的项目进行处理(例如替换)时才有特殊意义。
第一个因为没有^和$,所以只有要数字和-就对,第二个有这两个符号,^表示开始,$表示结束,整体的意思就是必须完整匹配,不得有其它内容。例如ABC028-88888就可以匹配第一种方式,但是在第二种就会失败。
还有问题吗?
在javascript中左斜线\没有单独的表示意义。而右斜线/有两种表示意义:(1)除法。除法运算符 (/)
将两个表达式的值相除。
result = number1 / number2
参数
result
任何数值变量。
number1
任何数值表达式。
number2
任何数值表达式。
(2)是正则表达式的分隔符。下面将javascript中的官方API附录:
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。
可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式。对 JScript 而言,分隔符为一对正斜杠 (/) 字符。例如:/expression/
关于左斜线(\)的意义:主要还是应用在正则表达式中,其他时候好像没有用到左斜线(\)的情况。这里用作转义字符——将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。
另外就是在很多目录表示的本地的大多左斜线(\),网络上的基本用右斜线(/)。另外比较专业的称呼就是/叫斜杠,\叫反斜杠