用于Javascript的RegExp,它允许除“;及%
在正则表达式中:用于Javascript的RegExp,它允许除“;及%,javascript,regex,Javascript,Regex,在正则表达式中: var r=newregexp(“^[^%”]*$”); ^和$表示什么?它是指字符串的开始和结束还是其他什么 另外,如果我删除^和$之类的内容会怎么样 var r = new RegExp('[^%"]*'); 这是一个有效的正则表达式吗 ^和$表示什么?是字符串的开始和结束还是 还有别的 在[]字符类外部,^匹配行的开头,$匹配行的结尾。在[]字符类内部,^(在类的开头使用)表示匹配字符类之外的任何字符 另外,如果我删除^1和$2,比如:var r=new,会怎么样 Re
var r=newregexp(“^[^%”]*$”);
^
和$
表示什么?它是指字符串的开始和结束还是其他什么
另外,如果我删除^
和$
之类的内容会怎么样
var r = new RegExp('[^%"]*');
这是一个有效的正则表达式吗
^和$表示什么?是字符串的开始和结束还是
还有别的
在[]
字符类外部,^
匹配行的开头,$
匹配行的结尾。在[]
字符类内部,^
(在类的开头使用)表示匹配字符类之外的任何字符
另外,如果我删除^1和$2,比如:var r=new,会怎么样
RegExp(“[^%”]*')?这是一个有效的正则表达式吗
是的,这是有效的,只是它不会有太大的作用,因为否定匹配的两边都可能有字符,*
匹配0个或更多已定义的字符类
使用类似于。yes'^'和'$'这两个词分别表示字符串的结尾。至少在字符类之外。在字符类中,^表示不匹配,因此它将不匹配那些被否定的字符(%在本例中为单引号) 如果删除
^
和$
,则正则表达式可能会通过,即使字符串中包含%或“以及其他字符
例子
"\"50\"%".match(/^[^"%]*$/); // equals null
"\"50\"%".match(/[^"%]*/); //equals [""]
"\"50\"%".match(/[^"%]*/g); //equals ["", "50", "", "", ""]
同样在JS中,最好使用/some regex/gm而不是新的regex(“some regex”)来创建正则表达式。可以使用
m
标志值更改^
和$
的含义
- 如果设置了
标志,m
和^
将分别匹配行的开头和结尾$
- 如果未设置
标志,m
和^
将分别匹配整个字符串的开头和结尾$
^[^%"]*$
为什么使用/some regex/gm是最佳实践?我不同意
gm
标志部分。g
仅在需要匹配所有匹配项时使用,并且m
将换行符视为新字符串的指示器。它不必以gm结尾,这些只是regex引擎的标志(g表示全局,m表示多行,我表示不区分大小写)我只是用它们来演示如何传递标志。当您使用new regexp
创建一个打开的regexp时,您将不得不担心转义。因此,如果您匹配的regex在它里面,你必须避开一个。这和使用/regex/看起来更好。我可能忘记了更多。你真的不需要键入newregexp
var r=/^[^%”]*$/;
就可以了;)
[^%"]*