Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制正则表达式中的字符长度_Javascript_C#_Regex - Fatal编程技术网

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]*[^$%^&*;:,<>?()\"']*$
  ^^^^^^^^^^^

不能将量词应用于锚点。相反,要限制输入字符串的长度,请使用锚定在开头的前瞻:

^(?=.{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中不起作用。我不确定您是否需要这个正则表达式。它将匹配0个或更多的字母或数字,然后是0个或更多的字符,而不是
$%^&*;:,?()”
set。请澄清哪些字符串是有效的(您希望匹配的)哪些是无效的。如果字符串中有换行符,请用
(?=[\s\s]{1,15}$)
替换第一个前瞻。在C#中,在尝试将正则表达式分配给字符串时,上面的一个将不起作用。我是否需要执行此操作^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()\“”]*$如果使用普通字符串文字,它将起作用。使用逐字字符串文字,它看起来像
var rx=new Regex(@“^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()”']*$”
@Maximus对比原则是模式中的正确方法。这并不是限制输入字符串的长度,而是一个特定的验证问题。顺便说一句,这个正则表达式在JS中不起作用。