gpt4 book ai didi

javascript - 用于匹配任何语言的 HashTags 的正则表达式

转载 作者:行者123 更新时间:2023-11-28 19:28:37 24 4
gpt4 key购买 nike

我的应用程序中有一个字段,用户可以在其中输入主题标签。我想验证他们的输入并确保他们输入正确的主题标签。它可以是任何语言,并且前面不应带有# 符号。我正在用 JavaScript 编写。

以下是很好的例子:

  • Abcde45454_fgfgfg(很好,因为:只有字母、数字和 _)
  • 2014_is-the-year(很好,因为:只有字母、数字、_ 和 -)
  • בר_רפאלй(很好,因为:只有字母和_)
  • арбуз(很好,因为:只有字母)

以下是不好的例子:

  • Dan Brown(不好,因为有空格)
  • 天啊!!!! (不好是因为有!)
  • בר רפ@לй(不好,因为有 @ 和一个空格)

我们有一个仅匹配 a-zA-Z0-9 的正则表达式,我们需要添加语言支持,因此我们将其更改为忽略空格并忘记忽略特殊字符,所以我在这里。

我看到但不适合我的其他一些 StackOverflow 示例:

  1. Other languges don't work
  2. Again, English only

[编辑]

  • 添加了为什么坏就是坏、好就是好的解释
  • 我不需要前面的#字符,但如果我想在开头添加#,它应该是一个有效的主题标签
    • 基本上我不想允许任何特殊字符,例如 !@#$%^&*()=+./,[{]};:'"?><

最佳答案

如果您的禁止字符列表很完整( !@#$%^&*()=+./,[{]};:'"?>< ),则正则表达式为:

^#?[^\s!@#$%^&*()=+./,\[{\]};:'"?><]+$

Demo

这允许可选的前导 #标志:#? 。它不允许使用负字符类的特殊字符。我刚刚添加了\s到列表(空格),我也逃脱了 [] .

不幸的是,您不能使用像 \p{P} 这样的结构(Unicode 标点符号)在 JavaScript 的正则表达式中,因此如果正则表达式解决方案不足以满足您的需求,您基本上必须将字符列入黑名单或采取不同的方法。

关于javascript - 用于匹配任何语言的 HashTags 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com