我有这个RegEx验证输入(在javascript中)以确保用户没有在文本框中输入超过1000个字符:
^.{0,1000}$
如果您在一行中输入文字,它可以正常工作,但是一旦您点击Enter并添加新行,它就会停止匹配。我该如何更改此RegEx以解决该问题?
答案 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