从具有特定字符的字符串中提取子字符串

时间:2015-10-26 06:16:10

标签: javascript regex string algorithm

我正在尝试提取所有以字符串开头的子字符串!对于Javascript中的字符串。例如,如果我的字符串是:

  

嗨杰克!微笑,这是一个愚蠢的文字来试试这个!代码!

因此输出应该是一个包含元素的数组:

var arr = ['Smile', 'Silly', 'Code']

我正在做的原因是因为我想将这些代码转换为我的聊天室的表情符号和“!”表明这是一个表情符号代码。是否有任何快速和最佳的做法,而不是使用for循环遍历每个单词?

2 个答案:

答案 0 :(得分:3)

我认为一个简单的正则表达式和数组处理应该这样做

var string = "Hi Jack !Smile, This is a !silly text to try out this !Code!";

var match = string.match(/!(.+?)\b/g),
  array = match ? match.map(function(val) {
    return val.substring(1)
  }) : [];

snippet.log(JSON.stringify(array))
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

答案 1 :(得分:3)

您可以使用以下正则表达式

!(.+?)\b