例如,假设#表示如下特殊字
今天我带了#lovely去了#zoo。我们有一个美好的时光。使用RegEx可以提取类似
的内容#lovely#zoo#wonderful
答案 0 :(得分:5)
使用string.match
var str = "I took a #lovely trip to the #zoo today. We had a #wonderful time"
str.match(/#\w+/g); // #lovely,#zoo,#wonderful
可能需要根据您的需要调整正则表达式以包含数字和符号。
/#[\w\d]+/g
代表字母和数字,/#\S+/g
代表任何非空格的内容。
编辑:我会在最后添加g
表示它会找到所有匹配而不仅仅是第一个匹配。
答案 1 :(得分:2)
有正则表达式的答案。然后,有split
答案。以下作品:
var s = 'I took a #lovely trip to the #zoo today. We had a #wonderful time.'
var tags = s.split( '#' ).map( function ( str ) {
return str.split( ' ' )[ 0 ]
} )
// Now, tags[0] is not good, so let's splice it
tags.splice( 0, 1 )
console.log( tags ) // ['lovely', 'zoo', 'wonderful']
所以,是的,它比正则表达式解决方案更冗长。我觉得它更优雅。
PS:你猜对了,我不喜欢正则表达式!