2016-03-13 46 views
1

我想从使用jquery和正则表达式的字符串中提取哈希标记值。从字符串中提取哈希标记值

blah blah #INeedThis blah blah 

我已经试过这样: -

/^#?(.*)$/ 

其中近的作品。它提取的每一件事情哈希标签后,所以我得到这样的: -

#INeedThis blah blah 

我怎样才能让regualr表达得到公正的哈希值,而不包括hashtag让我结束了这一点: -

INeedThis 

也有可能是字符串

+0

你始终保证有你的内容之间的空间? –

+0

是的,总是会有空格 – Shazoo

回答

1

如何使用非捕获组为#捕获组的字符串部分:

/(?:#)([A-Za-z]+)/g 

在阵列返回的,所述在索引1处的项目将是“INeedThis”

使用示例:

var myRe = /(?:#)([A-Za-z]+)/g; 
var myArray = myRe.exec("blah blah #INeedThis blah blah"); 

var content = document.getElementById("content"); 
content.innerHTML = myArray[1]; 

JSFiddle Demo

+0

完美,谢谢 – Shazoo

+0

不客气Shazoo :) – Yass

1

在不止一个散列标签值尝试正则表达式的波纹管 (^|\s)([#][a-zA-Z\d-]+)

工作正则表达式EXA mple:

https://regex101.com/r/kJ2qR3/2

+0

为什么你的正则表达式中有@ @?而且,如果散列值背后的值不是a-z,数字或破折号? – putvande

+0

它没有工作不幸,只是返回空白 – Shazoo

+0

什么是你的jsfiddle? – HDT

1

/#(\S+)/g将匹配哈希标签,是不是空间背后的一切。

'blah blah #INeedThis blah blah'.match(/#(\S+)/g); 

会导致["#INeedThis", "INeedThis"]