Javascript 如果出现某个字符串,如何使JS正则表达式不匹配?
我试图在Javascript中构建一个正则表达式,如果某个字符串出现,它将不匹配。所以我想匹配这个花括号Javascript 如果出现某个字符串,如何使JS正则表达式不匹配?,javascript,regex,Javascript,Regex,我试图在Javascript中构建一个正则表达式,如果某个字符串出现,它将不匹配。所以我想匹配这个花括号{,但前提是前面不是字符串else 我正在尝试执行此操作,^*[^else]**{.*$,但事实上,如果出现else字符串中的任何字符,则此操作不匹配,例如,此操作也与以下操作不匹配: erai{ 我想匹配出现{时的所有情况,尽管出现了此情况或{ 请帮我个忙。这是我的你要找的东西叫什么。你可以使用负前瞻。JavaScript支持这一点: (?!\s*else).+ *({).*$| Jav
{
,但前提是前面不是字符串else
我正在尝试执行此操作,^*[^else]**{.*$
,但事实上,如果出现else
字符串中的任何字符,则此操作不匹配,例如,此操作也与以下操作不匹配:
erai{
我想匹配出现{
时的所有情况,尽管出现了此情况或{
请帮我个忙。这是我的你要找的东西叫什么。你可以使用负前瞻。JavaScript支持这一点:
(?!\s*else).+ *({).*$|
JavaScript正则表达式不支持ifs,但我们可以使用一个技巧使其工作:
(?!RegExp)
这是第一部分,如果RegExp
(这是一个regex)没有出现,那么我们在这之后执行代码:
.+ *({).*$
这是我们运行的正则表达式。Broken是,它是:
.+ Match anything
* Until 0 - unlimited spaces
({) Capture the {
.*$ Match anything till the end
现在,除非我们在末尾添加一个|
,或者一个or,否则这将无法工作。这将使它像if语句一样工作
在查看之后,我建议您JavaScript不支持负面外观。所以@vihan有什么解决我的问题的方法吗?
^(?。*\belse\s*{).*$
@hwnd谢谢。你的RegExp真的很有用。\b
是否代表单词边界?如果我需要,我也可以将这个RegEx与两个单词连接起来。再次感谢你的帮助…谢谢你的帮助。但是你的演示也与这个案例相匹配{
。我不想匹配这个……你能帮我吗?这个也匹配其他的吗{
…正如我所说的,我不想匹配这种情况。@hwnd的解决方案适用于me@orsina不确定你的意思,这不是演示正在做的吗?我找到了一种使用你的答案的方法。我使用if
检查匹配返回的值是否未定义if(typeof closelsebl[1]!='undefined')
…然后我继续我的功能..非常感谢并抱歉我的第一条评论,但我后来找到了我的解决方案