我的作品已经上传到github了,大家可以查看那里的 https://adminphdcommy.github.io/cr-checker/
JS通过keydown触发并创建。
我按段落(换行)对结果进行分类,JS将使用正则表达式(/[\n\r]/gm)从数组中删除换行符。
但是,当我发送超过 2 个空换行符然后仅继续输入时,正则表达式无法检测到它。
文本区域输入示例:
PO PO PO PO
<--This part detected as newline-->
PO
<--This part detected as newline-->
<--This part unable to detect as newline-->
PO
Console.log 中的结果:
["噗噗噗噗", "噗", "", "噗"]
<小时/>我的代码获取文本区域值并创建数组:
var crinput = document.getElementById("textarea1").value
var paracountarray = crinput.split(/[\n\r]/gm);
我的代码删除数组中的空字符串:
for(a=0;a<paracountarray.length;a++){
if(paracountarray[a] == ""){
paracountarray.splice(a,1)
}
}
请告知如何删除数组中的“”。
最佳答案
没有工作JSFiddle例如,我不确定我是否掌握了您想要的东西。当在控制台中运行代码时,它“对我有用”,给了我我所期望的:一个额外的空数组元素:
>> var testStr = 'PO PO PO PO\n\nPO\n\n\nPO'
>> testStr.split(/[\n\r]/gm)
Array [ "PO PO PO PO", "", "PO", "", "", "PO" ]
也许您想要不同的结果?考虑“一次或多次”匹配:
var paracountarray = crinput.split(/[\n\r]+/gm);
这会将十五个连续的换行符视为单个段落分隔符。因此,在您的示例中,这将为您提供三个段落。与前面的示例相比:
>> var testStr = 'PO PO PO PO\n\nPO\n\n\nPO'
>> testStr.split(/[\n\r]+/gm)
Array [ "PO PO PO PO", "PO", "PO" ]
关于Javascript 在文本区域中两次输入未被 (/[\n\r]/gm) 检测到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46809899/