我在github上载了我的作品,你们可以在那里查看代码> https://adminphdcommy.github.io/cr-checker/
JS通过keydown触发并创建。
我将结果按段落进行分类(换行),JS将使用Regexp(/ [\ n \ r] / gm)从数组中删除换行符。
但是,当我发送超过2个空换行符的垃圾邮件时,仅继续输入,则regexp不会检测到。
textarea输入示例:
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中:
[“ po po po po po”,“ po”,“”,“ po”]
我的代码以获取textarea值并创建数组:
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);
这将把15个连续的换行符视为一个单段中断。因此,在您的示例中,这将为您提供三段。在前面的示例中:
>> 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无法检测到两次Javascript输入文本区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46809899/