首页 > 手机web留言 怎么控制textarea输入的长度?

手机web留言 怎么控制textarea输入的长度?

<textarea name="remark" id='remark' data-pattern="^.{1,100}$" placeholder="留言备注"></textarea>
这个正则^.{1,100}$,在手机端用户输入一个空格或者换行,就直接报错说输入的长度超过100了,
有没有好的方法可以过滤掉手机的空格、换行等 。意思就是换行、空格不计算长度。


我不清楚题里的data-pattern到底要怎么用。
但是这应该是一个正则的问题,建议加上正则的标签。

参考 阮一峰写的 RegExp对象

正则^.{1,100}$是什么意思呢?

点字符(.)匹配除回车(r)、换行(n) 、行分隔符(u2028)和段分隔符(u2029)以外的所有字符。
^ 表示字符串的开始位置
$ 表示字符串的结束位置
模式的精确匹配次数,使用大括号({})表示。{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次。

这表示,这个正则匹配:
没有换行,一共1~100个字符的字符串。

难道不是应该0~100吗?
难道没有字符也会报错误吗……?

好,题主想忽略空格来计数
想找到这样一个正则还需要知道:

  • 星号表示某个模式出现0次或多次,等同于{0,}。
    s 匹配空格(包括制表符、空格符、断行符等),相等于[trnvf]。

^[\s*.\s*]{0,100}$估计能完成任务。


你这是自定义的正则校验,校验前应该用了trim() 所以只输入一个空格也会报错
另外
.匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。

【热门文章】
【热门文章】