Javascript 使用RegEx验证js中的hashtag字符串
我的应用程序中有一个文本框,人们可以在其中插入他们想与某物关联的标签。 我不是正则表达式向导,所以我四处寻找解决方案,我喜欢这样:Javascript 使用RegEx验证js中的hashtag字符串,javascript,regex,Javascript,Regex,我的应用程序中有一个文本框,人们可以在其中插入他们想与某物关联的标签。 我不是正则表达式向导,所以我四处寻找解决方案,我喜欢这样: /^\w+$/ 对于只包含一个标记的字符串(例如“#something”),它非常有效,但对于 “#some1#some2”, 我正在使用javascript中的.match()函数检查字符串的有效性 我如何编写它以使其适用于以下示例: “#tag1” “#tag1#tag2” “#标记空间#标记空间#numbres456!” 但在这些方面失败了: “#先#”
/^\w+$/
对于只包含一个标记的字符串(例如“#something”
),它非常有效,但对于
“#some1#some2”
,
我正在使用javascript中的.match()
函数检查字符串的有效性
我如何编写它以使其适用于以下示例:
“#tag1”
“#tag1#tag2”
“#标记空间#标记空间#numbres456!”
-后无字符#“#先#”
-第二个短语的“否”“#第一个第二个”
-空“”
-短语上没有“tag”
-短语之间没有空格“#第二#第一”
-在短语中有一个#“#this#u has#u a#u in#u it”
有什么方法可以做到这一点吗?稍微更改您的模式,以便任何(a)字字符(
\w
)或数字(\d
)都可以构成您的标签:
/^#[\w\d]+$/
如果要使用锚定,可以匹配hashtag,然后再匹配,而不是空格或hashtag。然后使用非捕获组(?: 模式可能如下所示:
^#[^#\s]+(?: #[^#\s]+)*$
对于所有投反对票的人,请解释你为什么投反对票,以便改进问题。请像这样尝试
^.[^.\s]+(?:#[^.\s]+)*$
谢谢你的帮助!