2013-04-05 55 views
1

我有一个字符串的JavaScript数组,其中包含由插入符指示的同义词。示例如下:如何删除分隔符和空白或标点符号之间的文本?

  • I'm baffled^bemused by his decision.
  • "Why are you so mean^nasty?" she wailed^moaned.

我要回:

  • I'm baffled by his decision.
  • "Why are you so mean?" she wailed.

/\^([^^]*)\./适用于单个标点符号,但我一直无法得到它为[.,:;?"' ]功能。我很感激这方面的帮助。

回答

0

你想搜索并用这个正则表达式替换为空字符串:

\^([^^]*?)(?=[.,:;?"' ]) 

您可以在www.debuggex.com上看到要替换的部分以及正则表达式的详细视图。

+0

谢谢。这是一种享受;该链接也很有用。也感谢其他贡献者。 – Shoe 2013-04-05 19:11:49

0

你想使用一个带有空字符串的String.replace。

要匹配一个“^”后面所有的非空格字符,直到下一个空格,所以正则表达式将

\^[^\s]+ 

编辑:正如在评论中指出,这并未”对标点符号进行调整。

\^\w+ 

应该工作,因为\ w匹配所有的 “字” 字,即,包括AZ,az,0-9,& _

+0

我怀疑你需要对标点进行调整 – 2013-04-05 18:21:51

2

试试这个:

var str = "Why are you so mean^nasty?"; 
var regex = /\^\w+/; 

var result = str.replace(regex, ''); 

console.log(result); //"Why are you so mean?" 

See it working here

+0

谢谢@MikeM .. – fernandosavio 2013-04-05 18:36:14

相关问题