这个regexp(rinlinejQuery)在jQuery中是什么意思?

这个regexp(rinlinejQuery)在jQuery中是什么意思?,jquery,Jquery,它是否与代码匹配,例如jQuery11=“11” 为什么在html()函数中需要它呢?好的,首先我们有jQuery\d+,它只是“jQuery”,后跟一个或多个数字(\d与[01-9]相同) 然后我们有=”,它们在这里只是文字,所以我们匹配任何有“jQuery”的东西,然后是至少一个数字,然后是“=” 接下来,(…|…)构造是一个Or,因此它匹配垂直条前面的表达式或它后面的表达式。在本例中,这些表达式是\d+和null,因此我们的查询匹配任何由“jQuery”、至少一个数字“=”、然后至少一个数

它是否与代码匹配,例如
jQuery11=“11”


为什么在
html()
函数中需要它呢?

好的,首先我们有
jQuery\d+
,它只是“jQuery”,后跟一个或多个数字(
\d
[01-9]
相同)

然后我们有
=”
,它们在这里只是文字,所以我们匹配任何有“jQuery”的东西,然后是至少一个数字,然后是“=”

接下来,
(…|…)
构造是一个Or,因此它匹配垂直条前面的表达式或它后面的表达式。在本例中,这些表达式是
\d+
null
,因此我们的查询匹配任何由“jQuery”、至少一个数字“=”、然后至少一个数字或字符串“null”组成的字符串。后面是
文本

作为表达式本身的一部分,唯一剩下的是在左括号后面找到的
?:
。通常,正则表达式中括号中的任何内容都会被保存,以便您可以在替换字符串中使用
$n
引用它,其中
n
是一个数字,表示您所引用的匹配项。在这种情况下,启动括号的
?:
可以防止这种情况发生,因此可以使用括号对Or的选项进行分组,而不会浪费时间或内存来记住匹配的值

最后,正则表达式包含在前斜杠
/
中,这一个带有
g
开关,表示全局搜索

所以我们得到的是'jQuery',一个或多个数字,'=“',一个或多个数字或'null','”

回答你的第二个问题,是的,这个模式将匹配那个字符串


恐怕我不知道为什么jQuery的html函数需要从
这个[0].innerHTML
(这就是
replace
函数正在做的事情)中删除特定的字符串,但是根据注释,看起来他们在使用字符串来测试
innerHTML
是否有效和功能(并非在所有浏览器上都是如此)

如图所示:它确实匹配
jQuery11=“11”
是的,我明白了,但为什么?为什么要指出它?
var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,

html: function( value ) {
        if ( value === undefined ) {
            return this[0] && this[0].nodeType === 1 ?
                this[0].innerHTML.replace(rinlinejQuery, "") :
                null;

        // See if we can take a shortcut and just use innerHTML
        }