我正在尝试比较两个相等的字符串:一个textarea值(或textContent、 或innerHTML)和一个作为属性存储在 Backbone 模型中的字符串,例如"A string\xe2\x86\xb5with line break"。\n并且这种比较总是返回false。
\n比较这些字符串的长度可以揭示差异(存储的字符串长一个符号)。\n问题是如何准备第一个字符串(从 中提取textarea)以使其完全等于第二个字符串(存储在模型中)。
PS 他们都是typeof === \'string\'。
PPS\n主要问题是如何让 Backbone 在设置属性时看到相等性:
\n\nthis.model.set({ attr: textareaValue })。
Backbone 使用 Underscore 的方法,在本例中简单地比较两个字符串:
\n\nreturn \'\' + a === \'\' + b;
我已经应用encodeURIComponent了两个字符串:结果是Some%0Atextvs Some%0D%0Atext。所以第二个有\\r特色(它是由 Handlebars 渲染的)。我应该在每个之前插入这个字符吗\\n?
PPPS 是的,这成功了:textarea.value.replace(/\\n/gm, \'\\r\\n\');