我有一个正则表达式 (在javascript中) 用于验证输入,以确保用户未在文本框中输入超过1000个字符:
^.{0,1000}$
如果您在一行中输入文本,它可以正常工作,但是一旦您按下回车并添加新行,它就停止匹配。我应该如何更改这个正则表达式以解决这个问题?
我有一个正则表达式 (在javascript中) 用于验证输入,以确保用户未在文本框中输入超过1000个字符:
^.{0,1000}$
如果您在一行中输入文本,它可以正常工作,但是一旦您按下回车并添加新行,它就停止匹配。我应该如何更改这个正则表达式以解决这个问题?
.
不能匹配换行符。我想你可以使用类似这样的内容:^[.\r\n]{0,1000}$
只要你不使用m
, 它应该能工作,但是你真的需要在这里使用正则表达式吗?为什么不直接使用.length
属性呢?
必须提及jwz的名言:
有些人遇到问题时,会想“我知道,我用正则表达式来解决。”现在他们有两个问题了。
编辑:你可以使用CustomValidator
来检查长度,而不是使用正则表达式。MSDN上有一个可用的示例这里。
What you wish is this:
/^[\s\S]{0,1000}$/
.
不能匹配换行符。<text area element>.value.length
。\s
空白字符和\S
非空白字符,两者加起来就是everything™。但是,再次强调,不要使用正则表达式,这样做是完全错误的。 - Martin Jespersen如果你只是想验证输入的长度,那么直接验证字符串的长度不是更容易吗?
if (input.length > 1000)
// fail validation