Hashtags集的正则表达式

时间:2017-02-05 09:04:54

标签: javascript regex

我需要一个正则表达式来验证一个或多个主题标签。每个标签都以逗号或空格结尾。

这些是有效的输入:

#hashtagTest

#hashtagTest1, #hashtagTest2

#hashtagTest1,#hashtagTest2

我一直试图在javascript中这样做但到目前为止没有成功。

这些是无效输入:

#hashtagTest hashtagTest#r #m

#hashtagTest#hashtagTest

4 个答案:

答案 0 :(得分:0)

var str = prompt("String: ");

var match = str.match(/#[a-z\d][a-z-]*/gi);

if(match)
  console.log(match);
else
  console.log("Nothing matched!");

答案 1 :(得分:0)

const regex = /#\w+/gm;
const str = `#hashtagTest

#hashtagTest1, #hashtagTest2

#hashtagTest1,#hashtagTest2`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

答案 2 :(得分:0)

这个会起作用

/(#[a-zA-Z0-9]+,? *)*#[a-zA-Z0-9]+/

请参阅解释并在此处https://regex101.com/r/0NJkgq/2

进行测试

您可能希望添加行标记的开头和结尾,以确保整个字符串是一系列标记

/^(#[a-zA-Z0-9]+,? *)*#[a-zA-Z0-9]+$/

如果要查找字符串中所有出现的标记序列,可以使用

/(#[a-zA-Z0-9]+,? *)*#[a-zA-Z0-9]+/g

g修饰符允许在字符串中查找所有出现的正则表达式

答案 3 :(得分:0)

我相信这对你有用。

/#[a-z][\w]*/gi