Javascript JS正则表达式澄清

Javascript JS正则表达式澄清,javascript,regex,Javascript,Regex,我试图理解以下正则表达式: /((id|name|field|form, )=?"?\D+)\d+/g 因此,我从上面可以理解的是: 它必须以id、name、field和form开头,所以现在让我们假设它是‘name’,之后我认为“=”必须出现一次或不出现,这与。因此,到目前为止,以下模式是匹配的:name= 我知道g在最后意味着全局,改变所有的匹配 所以我的问题是:以数字结尾的'name=hdhf1'是否匹配?您可以使用它来可视化正则表达式: /((id|name|field|form, )

我试图理解以下正则表达式:

/((id|name|field|form, )=?"?\D+)\d+/g
因此,我从上面可以理解的是: 它必须以id、name、field和form开头,所以现在让我们假设它是‘name’,之后我认为“=”必须出现一次或不出现,这与。因此,到目前为止,以下模式是匹配的:name=

我知道g在最后意味着全局,改变所有的匹配

所以我的问题是:以数字结尾的'name=hdhf1'是否匹配?

您可以使用它来可视化正则表达式:

/((id|name|field|form, )=?"?\D+)\d+/g
如果要测试“name=hdhf1”是否匹配,只需在浏览器的JavaScript控制台中运行以下JavaScript代码:

/((id|name|field|form, )=?"?\D+)\d+/g.test('name="hdhf1"')

剧透警报:这将返回真实,因为这是一场比赛

对。通过在浏览器控制台中运行/id | name | field | form,=??\D+\D+/g.test'name=hdhf1',您可以很容易地自己尝试一下。要从问题中澄清:它必须从一开始就不是很正确。。。这只是意味着你在你的模式中寻找的第一件事是id | name | field | form如果你想确保在这之前没有任何东西,你需要寻找行的开头^不知道为什么要向下投票,我发现这非常有用。/id | name | field | form,=??\D+\D+/g已经是正则表达式了。不需要新的RegExp。谢谢,Regexper==>非常有用,现在生活在我的书签中:旁注:似乎是更完整的风格选择、环顾四周、单元测试。。。。