textarea中空白行的价值是多少?

时间:2015-08-31 05:22:36

标签: javascript jquery

我正在编写一个函数来检查textarea中每一行的值,并将结果输出到另一个textarea中。

我现在的问题是我不知道文本区域中空行的值,我尝试过“”,/ \ W /,undefined和null,但这些似乎都不起作用。这就是我现在所拥有的:

function check(){
            var textAreaValue= $("textarea#minCheck").val();
            var valueArray= $("textarea#minCheck").val().split("\n");
            var parsedArray=[];

            for(i=0; i<valueArray.length;i++){
                if(valueArray[i]==/\W/){
                    parsedArray.push(valueArray[i] + "|blank");
                }else if(valueArray[i]>=0 && valueArray[i]<=999){
                    parsedArray.push(valueArray[i] + "|" + "brand1");
                }else if(valueArray[i]>=1000 && valueArray[i]<=1999){
                    parsedArray.push(valueArray[i] + "|" + "brand2");
                }else if(valueArray[i]>=2000 && valueArray[i]<=2999){
                    parsedArray.push(valueArray[i] + "|" + "brand3");
                }else if(valueArray[i]>=3000 && valueArray[i]<=3999){
                    parsedArray.push(valueArray[i] + "|" + "brand4");
                }else{
                    parsedArray.push(valueArray[i]+"|invalid");
                }
            }

            $("textarea#minParsed").val(parsedArray.join("\n"));
        }

现在,当检查空行时,它会给我“| brand1”。

3 个答案:

答案 0 :(得分:1)

试试这个:修剪line的值并检查空格if(valueArray[i].trim()==""){,参见下面的代码

     function check(){
        var textAreaValue= $("textarea#minCheck").val();
        var valueArray= $("textarea#minCheck").val().split("\n");
        var parsedArray=[];

        for(i=0; i<valueArray.length;i++){
            if(valueArray[i].trim()==""){
                parsedArray.push(valueArray[i] + "|blank");
            }else if(valueArray[i]>=0 && valueArray[i]<=999){
                parsedArray.push(valueArray[i] + "|" + "brand1");
            }else if(valueArray[i]>=1000 && valueArray[i]<=1999){
                parsedArray.push(valueArray[i] + "|" + "brand2");
            }else if(valueArray[i]>=2000 && valueArray[i]<=2999){
                parsedArray.push(valueArray[i] + "|" + "brand3");
            }else if(valueArray[i]>=3000 && valueArray[i]<=3999){
                parsedArray.push(valueArray[i] + "|" + "brand4");
            }else{
                parsedArray.push(valueArray[i]+"|invalid");
            }
        }

        $("textarea#minParsed").val(parsedArray.join("\n"));
    }

答案 1 :(得分:1)

您可以使用此正则表达式检查空白行:/ ^ \ s * \ n / gm,对于Mac行结尾使用:/ ^ \ s * [\ r \ n] / gm

答案 2 :(得分:1)

您似乎在尝试使用正则表达式元字符(\W)而没有正则表达式调用。

字面值可能为\r\n(CR + LF),因此,如果您在\n上拆分,则会留下\r

尝试拆分\r\n,然后检查空字符串""

HTML5标准实际上改变了与此相关的一些内容,但我不知道它在实际浏览器实现中有什么实际影响。我认为HTML5标准表明客户端API可以看到任何组合(CR,LF或CR + LF),因为允许用户编辑内容。

这里有一个更好的答案,描述了这些场景:

https://stackoverflow.com/a/14217315/257090