我有这样的正则表达式,用于验证输入(在JavaScript),以确保用户在文本框没有进入超过1000个字符:正则表达式验证文本框长度
^.{0,1000}$
,如果你在输入文字作品确定一行,但是一旦你按下Enter并添加新行,就会停止匹配。我应该如何改变这个RegEx来解决这个问题?
我有这样的正则表达式,用于验证输入(在JavaScript),以确保用户在文本框没有进入超过1000个字符:正则表达式验证文本框长度
^.{0,1000}$
,如果你在输入文字作品确定一行,但是一旦你按下Enter并添加新行,就会停止匹配。我应该如何改变这个RegEx来解决这个问题?
你希望是什么:
/^[\s\S]{0,1000}$/
的原因是,.
将不匹配换行符。然而
一个更好的办法是不使用正则表达式和只使用<text area element>.value.length
如果你只是想验证输入的长度是不是很容易,只需验证字符串的长度?
if (input.length > 1000)
// fail validation
问题是.
与换行符不匹配。我想你可以使用这样的事情:
^[.\r\n]{0,1000}$
它应该工作(只要你not using m
),但你真的需要这里正则表达式?为什么不使用.length
property?
强制性jwz quote:
一些人,当遇到一个问题,认为“我知道,我将使用正则表达式。”现在他们有两个问题。
编辑:你可以使用一个CustomValidator
检查长度,而不是使用正则表达式的。 MSDN有一个示例可用here。
这个正则表达式我相信不会接受“垃圾”字符,我希望能够接受。 – Andrey
它会接受一切'\ s'全部是空格,'\ S'全部是非空白,它们就是一切。但是,再次,不要使用正则表达式,这显然是错误的。 –
你的建议工作,谢谢!但我仍不明白为什么这是错的。我意识到,如果我只是在JavaScript中进行比较,我应该已经使用了string.length方法;但我确实想使用内置的asp.net正则表达式验证器而不是编写代码,并且它不会执行那么糟糕。 – Andrey