Javascript 限制正则表达式中的字符长度
我使用以下正则表达式,不限制任何字符长度Javascript 限制正则表达式中的字符长度,javascript,c#,regex,Javascript,C#,Regex,我使用以下正则表达式,不限制任何字符长度 var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$/ //Works Fine var-test=/^(a-z | a-z | 0-9)*[^$%^&*:,?()\“”\']*$///工作正常 在上面的示例中,当我试图将字符长度限制为15(如下所示)时,它会抛出一个错误 var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\"
var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$/ //Works Fine
var-test=/^(a-z | a-z | 0-9)*[^$%^&*:,?()\“”\']*$///工作正常
在上面的示例中,当我试图将字符长度限制为15(如下所示)时,它会抛出一个错误
var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*${1,15}/ //**Uncaught SyntaxError: Invalid regular expression**
var test=/^(a-z | a-z | 0-9)*[^$%^&*:,?()\“”\'\']*${1,15}////**未捕获的语法错误:无效的正则表达式**
请帮助我将上述正则表达式的字符限制为15。您不能将量词应用于锚定。相反,要限制输入字符串的长度,请使用锚定在开头的前瞻:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$
^^^^^^^^^^^
不是很确定你需要这个正则表达式。它将匹配0个或多个字母或数字,然后匹配0个或多个字符,而不是
$%^&*;:,?()“'
set。请澄清哪些字符串有效(您希望匹配)哪些无效。如果您的字符串中有换行符,请将第一个前瞻替换为(?=[\s]{1,15}$)
。在C中,在尝试将正则表达式分配给字符串时,上面的字符串无效。是否需要执行此操作^(?=.{1,15}$)[a-zA-Z0-9]*.[$%^&*:,?()”]*$如果使用普通字符串文字,它将起作用。使用逐字字符串文字,它将看起来像var rx=new Regex(@“^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()”]*$)
@Maximus对比原则是模式中的一种正确方法。它不是限制输入字符串长度,而是一个特定的验证问题。顺便说一句,这个正则表达式在JS中不起作用。
^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$
^^^^^^^^^^^^^^^^^