【发布时间】:2022-05-20 06:24:09
【问题描述】:
我的应用程序中有一个字段,用户可以在其中输入主题标签。 我想验证他们的输入并确保他们输入了正确的 HashTag。 它可以是任何语言,并且应该不以#号开头。 我正在用 JavaScript 编写代码。
所以以下是很好的例子:
- Abcde45454_fgfgfg(很好,因为:只有字母、数字和 _)
- 2014_is-the-year(很好,因为:只有字母、数字、_ 和 -)
- בר_רפאלי(很好,因为:只有字母和_)
- арбуз(很好,因为:只有字母)
以下是不好的例子:
- Dan Brown(不好,因为有空格)
- 天啊!!!!!! (因为有!)
- בר רפ@לי(不好,因为有 @ 和空格)
我们有一个仅匹配 a-zA-Z0-9 的正则表达式,我们需要添加语言支持,因此我们将其更改为忽略空格并忘记忽略特殊字符,所以我来了。
我看到的其他一些 StackOverflow 示例但对我不起作用:
[编辑]
- 添加了为什么坏就是坏,好就是好的解释
- 我不想要前面的 # 字符,但如果我想在开头添加 #,它应该是一个有效的主题标签
- 基本上我不想允许任何特殊字符,例如 !@#$%^&*()=+./,[{]};:'"?>
【问题讨论】:
-
你的坏例子不包含
#。那么你的禁忌字符到底是什么? -
编辑了我的问题以添加解释和更多信息。谢谢!
-
所以前面
#是允许的,虽然你不喜欢,而#在其他地方是禁止的,是吗? -
不,我不想让 # 在文本中的任何位置出现,我希望它是多语言中的有效主题标签短语。
-
JavaScript 正则表达式不支持 Unicode 字符类。
标签: javascript regex multilingual hashtag