我在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/

10-12 22:19