我有这段代码负责在控件中加载值
实际上出现了换行符,所以我用以下代码替换了所有换行符
/* Specific method to load values from a radio group */
load_values.radiogroup = function (ctrl_type, ctrl_id) { // debugger;
var form = $("#theForm");
var div_ctrl = $("#" + ctrl_id);
var options = '';
var ctrls = div_ctrl.find("div").find("label");
var radios = div_ctrl.find("div").find("input");
ctrls.each(function (i, o) {
options += $(o).text() + '\n';
});
form.find("[name=name]").val(radios[0].name)
form.find("[name=options]").val($.trim(options.replace(/\n\n/g, "")));
}
此功能负责删除换行符,
form.find("[name=options]").val($.trim(options.replace(/\n\n/g, "")));
但是它在Firefox中不起作用
请对此有任何帮助
有两个问题:
.replace
默认情况下不会跨多行搜索.replace
默认情况下不超过第一场比赛/n
实际上是空白(回车\r
符),因此您的测试\n\n
将永远不会匹配任何内容。如果您使用带有global
和multiline
标志的简单正则表达式,则可以使用:
.replace( /(?:\r?\n)+/gm, '\n' )
我创建了一个小提琴来演示这一点,并且还删除了行中的前导空格。
如您所见,\r
由于您指出它可以在其他浏览器中使用,所以我将Lead设为可选。您应该注意,这可能是由于其他浏览器发生了一些不可思议的现象导致标准化的:Windows使用\r\n
和(大多数)其他平台使用\n
。
这就是说,视觉
new line
在打印是两件事情:一个字符来表示一个新行应该开始了,一个字地告诉文本插入符返回线(现在是全新的一个)的开始。实际上,大多数文本处理器只需要换行,而排版中技术上正确的换行指示符既是\n
和\r
。这是现实世界中的线与计算机中的线之间的模糊线。这是Windows标准,我喜欢它,因为它代表了真实的事物。另一方面,Unix和Mac OSX仅使用\n
我喜欢的内容,因为从概念上讲它很容易记住\n is a new line
。无论如何,您都需要对两者进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句