如何检测文本区域输入中的换行符
How to detect line breaks in a text area input?
检查文本区域值的换行符,然后计算出现次数(如果有)的最佳方法是什么?
我的网页上的表单上有一个文本区域。我正在使用JavaScript来获取文本区域的值,然后检查其长度。
例
enteredText = textareaVariableName.val();
characterCount = enteredText.length; // One line break entered returns 1
如果用户在文本区域中输入换行符,我上面的计算给出换行符的长度为 1。但是我需要给换行符的长度为 2。因此,我需要检查换行符和出现次数,然后将其添加到总长度中。
我想要实现的示例
enteredText = textareaVariableName.val();
characterCount = enteredText.length + numberOfLineBreaks;
<小时 />在问这个问题之前,我的解决方案如下:
enteredText = textareaVariableName.val();
enteredTextEncoded = escape(enteredText);
linebreaks = enteredTextEncoded.match(/%0A/g);
(linebreaks != null) ? numberOfLineBreaks = linebreaks.length : numberOfLineBreaks = 0;
我可以看到对文本进行编码并检查%0A
有点冗长,所以我正在寻找一些更好的解决方案。谢谢你的所有建议。
您可以在包含换行符的字符串上使用match
,并且该数组中的元素数应对应于换行符的数量。
enteredText = textareaVariableName.val();
numberOfLineBreaks = (enteredText.match(/'n/g)||[]).length;
characterCount = enteredText.length + numberOfLineBreaks;
/'n/g
是一个正则表达式,意思是"查找字符'n
(换行符),并全局(跨整个字符串)执行此操作。
||[]
部分只是以防万一没有换行符。匹配将返回null
,因此我们测试空数组的长度以避免错误。
这是一种方法:
var count = text.length + text.replace(/[^'n]/g, '').length;
或者,您可以将所有"裸"'n
字符替换为'r'n
,然后使用总长度。
我会使用正则表达式来做到这一点:
var inTxt = document.getElementById('txtAreaId').value;
var charCount = inTxt.length + inTxt.match(/'n/gm).length;
其中/'n/
与换行符匹配(显然),g
是全局标志。 m
代表多线,在这种情况下你显然需要它......
或者,尽管我记得这有点慢:
var charCount = inTxt.length + (inTxt.split("'n").length);
编辑刚刚意识到,如果没有匹配换行符,这将引发错误,所以最好这样做:
charCount = intTxt.length + (inTxt.match(/'n/) !== null ? inTxt.match(/'n/gm).length : 0);
或类似的东西...
您可以根据新行拆分文本:
let textArray = text.split(/^/gm)
console.log(textArray.length)
对于新的 JS,请使用 encodeURI()
,因为 ECMAScript 1.5 中已弃用escape()
。
而是使用:
enteredText = textareaVariableName.val();
enteredTextEncoded = encodeURI(enteredText);
linebreaks = enteredTextEncoded.match(/%0A/g);
(linebreaks != null) ? numberOfLineBreaks = linebreaks.length : numberOfLineBreaks = 0;
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 文本输入与文本区域
- 使用javascript html实时预览文本区域输入
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 在文本输入区域中创建双向更新
- Javascript 只允许输入区域中有空格
- 是否覆盖网站上文本输入区域的默认移动设备键盘?(HTML/JS/jQuery)
- 单击输入区域时出现问题
- 当输入区域中没有文本时,Jquery 提交按钮未禁用
- 在条件jquery上启用按钮/输入区域
- 处理输入区域中的 HTML 标记
- 在动态输入区域jquery中获取post数组以插入批代码点火器
- 从输入区域向表中添加元素
- 输入区域中出现PHP错误的新行
- 如何使用javascript单选按钮将文本添加到输入区域
- 当我将鼠标悬停在按钮上时,使用javascript或CSS来改变输入区域的颜色
- 当用户按下按钮时,如何从输入区域添加相同的内容