小编Kir*_*hin的帖子

JS比较字符串和换行符

我正在尝试比较两个相等的字符串:一个textarea值(或textContent、 或innerHTML)和一个作为属性存储在 Backbone 模型中的字符串,例如"A string\xe2\x86\xb5with line break"。\n并且这种比较总是返回false
\n比较这些字符串的长度可以揭示差异(存储的字符串长一个符号)。\n问题是如何准备第一个字符串(从 中提取textarea)以使其完全等于第二个字符串(存储在模型中)。

\n\n

PS 他们都是typeof === \'string\'

\n\n

PPS\n主要问题是如何让 Backbone 在设置属性时看到相等性:

\n\n

this.model.set({ attr: textareaValue })

\n\n

Backbone 使用 Underscore 的方法,在本例中简单地比较两个字符串:

\n\n

return \'\' + a === \'\' + b;

\n\n

我已经应用encodeURIComponent了两个字符串:结果是Some%0Atextvs Some%0D%0Atext。所以第二个有\\r特色(它是由 Handlebars 渲染的)。我应该在每个之前插入这个字符吗\\n

\n\n

PPPS 是的,这成功了:textarea.value.replace(/\\n/gm, \'\\r\\n\');

\n

javascript string backbone.js marionette

2
推荐指数
1
解决办法
6694
查看次数

标签 统计

backbone.js ×1

javascript ×1

marionette ×1

string ×1