Javascript 查找用于验证术语(关键字)输入的正则表达式

Javascript 查找用于验证术语(关键字)输入的正则表达式,javascript,regex,validation,Javascript,Regex,Validation,不幸的是,我的正则表达式很差!你能指导我用javascript写一个正则表达式来确定我的术语输入框吗。用户应使用以下格式输入术语: #(all alphanumeric chars + blank + dash + quotation ) 例如: #keyword1#key word2#keyword3#key-word4#key'word5 这些输入应该是非法的: ##### ##keyword1#key2# # #keyword #!%^& 在您编写时,术语由以下内容指定: /

不幸的是,我的正则表达式很差!你能指导我用javascript写一个正则表达式来确定我的术语输入框吗。用户应使用以下格式输入术语:

#(all alphanumeric chars + blank + dash + quotation )
例如:

#keyword1#key word2#keyword3#key-word4#key'word5
这些输入应该是非法的:

#####
##keyword1#key2#
# #keyword
#!%^&

在您编写时,术语由以下内容指定:

/#[a-zA-Z0-9 '-]+/
重复该模式,并强制它包含字符串的开头和结尾,使用
^
$

/^(#[a-zA-Z0-9 '-]+)+$/
当你说“##关键字”应该无效时,我假设你的意思是“#”应该无效,而“#关键字”应该从该字符串中提取。第一个“框”表示关键字总是以小写字母、大写字母或数字开头。如果这太过严格,并且您希望允许例如“#-关键字”,只需在第一个闭合方括号前添加破折号,如下所示:

/#[a-zA-Z0-9-][a-zA-Z0-9 '-]+/
要返回javascript中的结果数组,请使用“global”修饰符(第二个斜杠后的“g”)将其应用于字符串:


您可能希望在上看到此代码。Regular-expressions.info是了解正则表达式更多信息的有用网站。它们还有一个on(打开),在玩游戏时很有用。

谢谢burfdl。。我会测试它;但我不想在最后冲刺,我的另一个问题是,我想使用阿拉伯字符!我应该写什么?这可以吗:/#[a-zA-Z{Arabic}0-9-][a-zA-Z{Arabic}0-9']+/我使用这个参考:不幸的是javascript不支持
\p{Arabic}
。它确实支持unicode转义,因此您可以使用
\u0600-\u06FF
来近似它。但是,整个范围可能包括您不想要的字符。查看阿拉伯文的unicode列表,并将其分成若干组(例如:
/#[\u0660-\u0669\u06F0-\u06F9]/
应以“#123#456”的形式匹配阿拉伯文数字)。对不起,我阿拉伯语说得不好!:)
/#[a-zA-Z0-9-][a-zA-Z0-9 '-]+/
arrayOfKeywords = keywordString.match(/#[a-zA-Z0-9-][a-zA-Z0-9 '-]+/g);