2011-11-29 81 views
-2

我给了它一个大学的尝试,但我很难过。我试图在字符串中查找连续的斜杠。其余的正则表达式很好,但最后一部分我不太明白。在JavaScript中使用正则表达式查找连续的“//”

这是我有:

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

并发现这个线程,我决定更新我的代码无济于事: RegEx to find two or more consecutive chars

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

什么我需要让这件事去?

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

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

我需要它什么也是看字符串的双重失衡英寸是的,我很了解indexOf和其他字符串操作技术,但我将它标记为正则表达式,因为它需要。让我知道如果您需要更多信息...

+0

什么是你想真正在这里做? – hugomg

+0

我不是很明白你的问题是什么。但是,如果你想匹配两个连续的'//',你可以简单地使用'.match(/^\/{2} /);',不确定'[〜'#%&*:<> \ {|}]'部分无论如何...你能解释更多吗? –

+1

我仍然不明白你想要做什么。你的问题标题谈论连续的斜杠,你的实际正则表达式包含一堆其他的东西,而你链接到一个关于两个连续字母字符的问题,你能给出一个你的输入数据和所需输出的例子,所以我们不必根据你的正则表达式猜测(因为你说过正则表达式不起作用)? – nnnnnn

回答

0

答案如下。

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

不知道为什么其他版本不起作用,但也许有人可以澄清一些事情。

测试:

  1. _text - 失败领先的下划线
  2. /文 - Falied领先失衡
  3. 文本〜moreText - 无法包含无效字符:〜“#%& *:<> \ {? |}
  4. 文字//文本 - 失败的双重重击
  5. 文本/ - 失败后乱作一团
  6. 文本 - 失败。尾随期间

不知道为什么下面的代码不能正常工作,但移动的双重重击测试,它现在的作品:

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

我相当肯定'[\/| _]'匹配的比您想象的要多 – Toto

+0

您的正则表达式匹配一个只包含一个char '/ _〜“#%&*:<>?\\ {} | .'或2或更多'/'。 – Toto

+0

我不需要找到其中一个字符。如果其中一个字符是键入的,某些控件将被锁定。 '^ [\/| _]'似乎按照我的预期工作。这个**应该**只在字符串的开头找到一个'/'或'_'。你有不同的结果吗? – iOnline247

2

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

+0

要查看这是否工作,我将我的代码更改为: val.match(/ [\ /] + /) 它匹配第一个“/”。任何其他想法? – iOnline247

0

为什么不使用indexof?这会更简单。

+0

需要一个正则表达式bro。 – iOnline247

1

嗯,你为什么不只是做

​​3210

?你在OP的正则表达式的方式似乎更为复杂......

  • \/反斜杠字符
  • {2,}告诉两次与之匹敌以上
  • /g使得图案全球化,所以你可以找到所有字符的字符串匹配字符串中的模式。其中,单个字符出现2次以上
+0

看到我更新的笔记到Q ... – iOnline247

1
/(.)$1+/ 

会发现任何地方。 (.)匹配单个字符,并将该字符捕获到$ 1,然后您需要紧接在初始字符之后1次或更多次。

对于斜线,可以将其简化到

/\/{2,}/ 
/\/\/+/ 

但后来你到倾斜牙签领土。

+0

当我看到这个工作,我很陶醉: val.match(/ \/{2} /) 但在加入它使匹配第一重击。我确信这是我正在做的事情,所以如果你能澄清...... val.match(/^[\ /] | \/{2,} | [〜“#%&*:<>? \\ {|}] | [\/|。] $ /) – iOnline247

相关问题