Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找连续的“//&引用;在JavaScript中使用正则表达式_Javascript_Regex - Fatal编程技术网

查找连续的“//&引用;在JavaScript中使用正则表达式

查找连续的“//&引用;在JavaScript中使用正则表达式,javascript,regex,Javascript,Regex,我在大学里试过,但我被难倒了。我试图在字符串中找到连续的斜杠。regex的其余部分工作得很好,但最后一部分我不能完全理解 以下是我所拥有的: val.match( /^[\/]|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) val.match(/^[\/]\[~“\\%&*:?\{\}]\[\/.]$/) 找到这个线程后,我决定更新我的代码,但没有用: val.match(/^[\/]\[\/]{2,}.[~“\\\%&*:?\{\\}]\[\/.]$/)

我在大学里试过,但我被难倒了。我试图在字符串中找到连续的斜杠。regex的其余部分工作得很好,但最后一部分我不能完全理解

以下是我所拥有的:

val.match( /^[\/]|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) 
val.match(/^[\/]\[~“\\%&*:?\{\}]\[\/.]$/)
找到这个线程后,我决定更新我的代码,但没有用:

val.match(/^[\/]\[\/]{2,}.[~“\\\%&*:?\{\\}]\[\/.]$/)
我需要什么来让这件事继续下去

所以,我需要这个正则表达式来查找许多字符。这将解释我提供的第一个代码示例:

val.match( /^[\/]|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) 
val.match(/^[\/]\[~“\\%&*:?\{\}]\[\/.]$/)

我还需要它做的是在字符串中寻找双重打击。是的,我很了解indexOf和其他字符串操作技术,但我标记它为regex,因为它需要。如果需要更多信息,请告诉我…

[\/]+
应该与一个或多个
/
匹配。

为什么不使用?那样会更简单。

嗯,你为什么不这样做呢

/\/{2,}/g
?OP中的正则表达式似乎更复杂

  • \/
    匹配文本反斜杠字符
  • {2,}
    告诉您匹配它两次或更多次
  • /g
    使模式成为全局模式,以便您可以在字符串中找到模式的所有出现
将查找单个字符出现2次或更多次的任何位置。
(.)
匹配单个字符,并将该字符捕获到$1中,然后您要求该字符紧跟在初始字符之后1次或更多次

对于斜杠,您可以将其简化为

/\/{2,}/
/\/\/+/
但你会倾向于牙签领域。

答案如下

val.match( /^[\/|_]|[~"#%&*:<>?\\{|}]|[\/]{2,}|[\/|.]$/ )
val.match(/^[\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
不知道为什么另一个版本不起作用,但也许有人可以解释一下这件事

测试:

  • _文本-失败的前导下划线
  • /文本-错误的引导重击
  • text~moreText-失败包含无效字符:~“\\%&*:?\{124;}
  • text//text-双击失败
  • text/-尾部重击失败
  • 文本-失败的尾随周期
  • 不确定为什么下面的代码不起作用,但移动了双击测试,现在可以工作了:

    val.match( /^[\/|_]|[\/]{2,}|[~"#%&*:<>?\\{|}]|[\/|.]$/ )
    
    val.match(/^[\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    
    你到底想在这里做什么?我不太明白你的问题是什么。但是,如果您想匹配两个连续的“/”,您可以简单地
    .match(/^\/{2}/),不确定
    [~“\\%&*:?\\{124;}]
    part any…你能解释一下吗?我还是不明白你想做什么。你的问题标题是关于连续的斜杠,你的实际正则表达式包含一堆其他东西,你链接到一个关于两个连续的字母字符的问题。你能举个例子说明你的输入数据和所需的输出,这样我们就没有了根据你的正则表达式进行猜测(假设你说正则表达式无论如何都不起作用)?答案如下:val.match(/^[\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。或者接受对您帮助最大的现有答案。为了查看这是否有效,我将代码更改为:val.match(/[\/]+/),并在第一个“/”处匹配。还有其他的想法吗?当我看到它起作用时,我非常激动:val.match(/\/{2,}/),但是添加它会使它在第一次敲击时匹配。我确信这是我正在做的事情,所以如果你能澄清。。。val.match(/^[\/]\/{2,}\/{124;[~”%&*:?\{124}].[\/}.]$/)我很确定
    [\/\/\\\\\\/\\\\\\\\\\\\\\\\\\//code>匹配的字符比您想象的多。您的正则表达式匹配的字符串只包含
    /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。如果键入了其中一个字符,则某些控件将被锁定<代码>^[\/|]
    似乎按照我的预期工作。这段代码只能在字符串的开头找到
    /
    。你得到了不同的结果吗?
    val.match( /^[\/|_]|[~"#%&*:<>?\\{|}]|[\/]{2,}|[\/|.]$/ )
    
    val.match( /^[\/|_]|[\/]{2,}|[~"#%&*:<>?\\{|}]|[\/|.]$/ )