我需要一个正则表达式来验证一个或多个主题标签。每个标签都以逗号或空格结尾。
这些是有效的输入:
#hashtagTest
#hashtagTest1, #hashtagTest2
#hashtagTest1,#hashtagTest2
我一直试图在javascript中这样做但到目前为止没有成功。
这些是无效输入:
#hashtagTest hashtagTest
,
#r #m
#hashtagTest#hashtagTest
答案 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