繁体   English   中英

textarea 中每个单词的正则表达式 maxlength - JavaScript

[英]Regex maxlength per word in textarea - JavaScript

我正在尝试一个正则表达式,它允许 textarea 中每个单词不超过 17 个字符。 我尝试了几种表达方式,但直到现在都没有成功。

例如,我试图成功这样的事情:

ADQQ213323DS2D33S
ADQQ213323DSDDSDA
73721GE276G2E1772

只应允许使用数字和字母以及空格或换行符。

我尝试过的正则表达式:

^[a-zA-Z0-9\n]{17}$

HTML5 <textarea>标签上的pattern属性不足以完成您需要做的事情,因为您需要s标志,以便^$锚点也将匹配行的开头和结尾。 以下正则表达式也使用i标志来区分大小写:

/^\s*([a-z0-9]{1,17}(\s+|$))*$/is
  1. ^匹配字符串的开头或行的开头
  2. \\s*匹配 0 个或多个空白字符
  3. ([a-z0-9]{1,17}匹配 1 到 17 个字母或数字
  4. (\\s+|$)匹配一个或多个空格或行尾
  5. *步骤 3 到 5 重复 0 次或更多次
  6. $匹配行尾或行尾或字符串尾。

以下代码段为 textarea 安装了一个onkeyup处理程序,以便在 textarea 中出现每个新字符后,根据正则表达式测试内容,如果测试失败,则恢复先前的内容。

 function setupField(field, re) { field.autocomplete = "off"; field.saveValue = field.value; field.onkeyup = function() { var v = field.value; if (v === '' || re.test(v)) { field.saveValue = v; } else { field.value = field.saveValue; } }; } function setup() { let regex = /^\\s*([a-z0-9]{1,17}(\\s+|$))*$/is; setupField(document.f.ta, regex); }
 <html> <body onload="setup();"> <form name="f"> Enter text:<br> <textarea name="ta" rows="5" cols="60"></textarea> </form> </body> </html>

如何删除默认的最大字数限制(maxlength)<textarea> &lt;i&gt;&lt;/div&gt;&lt;/i&gt; &lt;b&gt;&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我正在使用&lt;textarea&gt;字段从客户端获取输入。</p><p> 默认情况下, &lt;textarea&gt;的最大长度为maxlength来源:<a href="https://www.geeksforgeeks.org/html-textareamaxlength-attribute/" rel="nofollow noreferrer">Textarea</a>的最大长度</p><p>我希望&lt;textarea&gt;是<strong>无限</strong>的,因为客户希望使用它来处理大量文本。</p><p> 如何做到这一点?</p><p> 我尝试了什么:</p><p> 我用过maxLength={Number.MAX_SAFE_INTEGER} 。 这会将最大长度设置为maxlength (9007199254740991) 中的最大安全 integer。</p><p> 我正在寻找其他更好的方法。</p></div>

[英]How to remove default maximum word limit (maxlength) from <textarea>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM