正则表达式验证文本框长度

时间:2011-02-04 21:26:03

标签: javascript regex

我有这个RegEx验证输入(在javascript中)以确保用户没有在文本框中输入超过1000个字符:

^.{0,1000}$

如果您在一行中输入文字,它可以正常工作,但是一旦您点击Enter并添加新行,它就会停止匹配。我该如何更改此RegEx以解决该问题?

3 个答案:

答案 0 :(得分:6)

问题是.与换行符不匹配。我想你可以使用这样的东西:

^[.\r\n]{0,1000}$

它应该有用(只要你是not using m),但你真的需要一个正则表达式吗?为什么不使用.length property

强制性jwz quote

  

有些人在面对问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。


修改:您可以使用CustomValidator检查长度,而不是使用Regex。 MSDN有一个示例here

答案 1 :(得分:3)

你希望如此:

/^[\s\S]{0,1000}$/

原因是.与新行不匹配。

然而,更好的方法是不使用正则表达式,只使用<text area element>.value.length

答案 2 :(得分:3)

如果你只是想验证输入的长度不是更容易验证字符串的长度吗?

if (input.length > 1000)
    // fail validation