我需要正则表达式来验证hashtag。每个hashtag应以hashtag(“#”)开头。正则表达式的有效hashtag
有效的输入:
1. #hashtag_abc
2. #simpleHashtag
3. #hashtag123
无效输入:
1. #hashtag#
我一直在尝试使用这个正则表达式/#[a-zA-z0-9]/
,但它也接受无效输入。
有关如何操作的建议?
我需要正则表达式来验证hashtag。每个hashtag应以hashtag(“#”)开头。正则表达式的有效hashtag
有效的输入:
1. #hashtag_abc
2. #simpleHashtag
3. #hashtag123
无效输入:
1. #hashtag#
我一直在尝试使用这个正则表达式/#[a-zA-z0-9]/
,但它也接受无效输入。
有关如何操作的建议?
有2个问题:
[A-z]
allows more than just letter chars([, \, ], ^, _, `
)您可能还需要锚(^
/$
)如果你想有一个完整的字符串匹配。
使用
/^#\w+$/
目前接受的答案失败,在几个地方:
尝试以下正则表达式:
/(^|\B)#(?![0-9_]+\b)([a-zA-Z0-9_]{1,30})(\b|\r)/g
它会关闭上述边缘情况,进而:
这里是link to the demo。
您的当前表达式与OP的第一个有效输入不匹配,因为它包含下划线。 – Niitaku
@Niitaku:是的,你说得对,那么模式应该简单得多。 –
@WiktorStribiżew这里有一个更有效的输入'#hashtag123' – Ashok