将textarea值与字符串进行比较?

时间:2014-01-10 16:24:45

标签: jquery compare textarea

我有一个textarea,我在加载时用这个字符串填充:

//Example of use\r\n//var result = row['col'] + 10;\r\n//return result;

然后,当用户完成后,我想获得textarea的值并将其与初始值进行比较。但是这一行总是返回false(initialString是上面的值):

if($("#textarea").val() == initialString)  { ... }

我很确定问题出在'\ r \ n'上,因为val()会改变它。但是你看到一种简单的跨浏览器方式来比较这些字符串吗?或者我应该每行拆分和循环线?

这里有一个jsFiddle,如您所见,警报始终返回false(http://jsfiddle.net/MCYbh/)。

问候!

3 个答案:

答案 0 :(得分:2)

从预先格式化的textarea中获取值,稍后您可以再次将其与textareas值进行比较,并确保它是相同的,除非用户更改它。

$(document).ready(function() {
    var initValue = "//Example of use\r\n//var result = row['col'] + 10;\r\n//return result;";

    $("#textarea").val(initValue);
    initValue = $("#textarea").val();

    alert($("#textarea").val() == initValue);

});

FIDDLE

答案 1 :(得分:0)

AFAIK文本区域值换行符只是换行符'\ n'。

我不会逐行进行比较。您始终可以使用 String.replace()替换'\ n \ r'。实际上,规范化行尾也可以摆脱可能的跨浏览器问题。

答案 2 :(得分:0)

您可以在文本区域的值和初始值中用空格替换\r\n个字符,然后进行比较。要用空格替换\r\n个字符,可以使用以下正则表达式:

var str = "My string \r\n with new line \r\n characters";
str = str.replace(new RegExp(/\r?\n|\r/g)," ");

这应该可以解决问题。在两个值上使用上面的代码示例后,您可以比较文本区域值和初始值。