我有一些javascript根据用户选择的内容操纵html.对于真正的浏览器,我正在使用的方法利用"Range"对象,如下所示:
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var content = range.toString();
Run Code Online (Sandbox Code Playgroud)
内容变量包含所有选定的文本,工作正常.但是我发现我无法在结果字符串中检测到换行符.例如:
选定的文字是:
ABC
高清
GHI
range.toString()计算为"abcdefghi".
对特殊字符的任何搜索都不会返回\n\f\r或甚至\ s的实例.但是,如果我将变量写入可编辑控件,则会再次显示换行符.
有谁知道我错过了什么?
这些选择和操作可能与可编辑的div相关.在Chrome,FireFox和Opera中也可以看到相同的行为.令人惊讶的是IE无论如何都需要完全不同的代码,但除了它只是IE之外,没有任何问题.
非常感谢.
我正在寻找一种在Internet Explorer中的textarea中设置选择的方法.在其他浏览器中,这很好用:
textarea.selectionStart = start;
textarea.selectionEnd = end;
Run Code Online (Sandbox Code Playgroud)
在IE中,我假设我必须以createRange某种方式使用和调整选择,但我无法弄清楚如何.
有关正确文档createRange和相关方法的链接的额外奖励积分,MSDN没有多大帮助.
我使用鼠标在html页面(在firefox中打开)选择一些文本,并使用javascript函数,我创建/获取与所选文本对应的rangeobject.
userSelection =window.getSelection();
var rangeObject = getRangeObject(userSelection);
Run Code Online (Sandbox Code Playgroud)
现在我想突出显示rangeobject下的所有文本.我这样做,
var span = document.createElement("span");
rangeObject.surroundContents(span);
span.style.backgroundColor = "yellow";
Run Code Online (Sandbox Code Playgroud)
好吧,这个工作正常,只有当rangeobject(起始点和端点)位于同一个textnode中时,它才会突出显示相应的text.Ex
<p>In this case,the text selected will be highlighted properly,
because the selected text lies under a single textnode</p>
Run Code Online (Sandbox Code Playgroud)
但是如果rangeobject覆盖了多个textnode,那么它就不能正常工作,它只突出显示位于第一个textnode中的文本,Ex
<p><h3>In this case</h3>, only the text inside the header(h3)
will be highlighted, not any text outside the header</p>
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么做,所有在rangeobject下的文本,突出显示,独立于范围是在单个节点还是多个节点?谢谢....
更新2:对于子孙后代,我就这样做了(感谢Jorg的输入):
100.step(2, -2) do |x|
# my code
end
Run Code Online (Sandbox Code Playgroud)
(显然有很多方法可以做到这一点;但听起来这是最"Ruby"的方式;而这正是我所追求的.)
更新:好的,所以我要找的是step:
(2..100).step(2) do |x|
# my code
end
Run Code Online (Sandbox Code Playgroud)
但事实证明,在我原来的问题中,我并非100%即将到来.我实际上想要向后迭代这个范围.令我惊讶的是,消极的一步是不合法的.
(100..2).step(-2) do |x|
# ArgumentError: step can't be negative
end
Run Code Online (Sandbox Code Playgroud)
那么:我该怎么做呢?
嘿伙计们,我对Ruby 很新,所以要温柔.
假设我想迭代从2到100的偶数范围; 我该怎么办?
显然我可以这样做:
(2..100).each do |x|
if x % 2 == 0
# my code
end
end
Run Code Online (Sandbox Code Playgroud)
但是,显然(再次),这将是非常愚蠢的.
我知道我可以这样做:
i = 2
while i <= 100
# my code
i += 2
end
Run Code Online (Sandbox Code Playgroud)
我相信我也可以编写自己的自定义类,提供自己的each方法(?).不过,我几乎可以肯定这会有点矫枉过正.
我对两件事感兴趣: …
我有一个以下格式的数组:
array(
0 => array(1, 5),
1 => array(4, 8),
2 => array(19, 24),
3 => array(6, 9),
4 => array(11, 17),
);
Run Code Online (Sandbox Code Playgroud)
每个项目是X到Y范围.我想合并数组中的重叠范围,以获得更像这样的东西:
array(
0 => array(1, 9), // 1-5, 4-8 and 6-9 are overlapping, so they are merged
1 => array(11, 17),
2 => array(19, 24),
);
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
我有$latitude = 29.6815400和$longitude = 64.3647100,现在在MySQL我想借15个最近的地方,这些坐标,我打算做此查询:
SELECT *
FROM places
WHERE latitude BETWEEN($latitude - 1, $latitude + 1)
AND longitude BETWEEN($longitude - 1, $logintude + 1)
LIMIT 15;
Run Code Online (Sandbox Code Playgroud)
你认为这是正确的还是你建议别的吗?
怎么办BEETWEEN,因为我想搜索最近50Km范围的近处?
我忘了说我也可以在运行查询之前使用PHP做任何事情.
注意:我无法使用存储过程.
什么是elisp相当于Python的range(start, end, [step])?
我有这些范围:
7,10
11,13
11,15
14,20
23,39
Run Code Online (Sandbox Code Playgroud)
我需要执行重叠范围的并集以给出不重叠的范围,因此在示例中:
7,20
23,39
Run Code Online (Sandbox Code Playgroud)
我在Ruby中完成了这个,我已经在数组中推动了范围的开始和结束并对它们进行了排序,然后执行重叠范围的并集.有什么快速的方法在Python中执行此操作?
谢谢
问题陈述:
给定一系列
x -> y无符号整数
,其中x和y都在范围内 ,并且(或者在交替情况下为64) 找到最小可用值 不等于或 不在现有集合中 ,其中现有集合是任意子集0 -> 2nn0 -> 32xyx -> y
我正在使用数据库中的IPv4和IPv6子网建模.每个子网由其起始地址和结束地址定义(我通过业务规则确保范围的完整性).由于IPv6太大而无法存储在bigint数据类型中,因此我们将IP地址存储为binary(4)或binary(16).
相关联的数据被存储在subnet,dhcp_range与ip_address表:
subnet表中.子网范围始终为2 n(根据CIDR /网络掩码的定义).0..*存储在ip_address表中的IP地址.IP地址必须位于起始地址和结束地址之间,但不等于其关联子网定义的范围.0..*存储在dhcp_range表中的DHCP范围.与子网类似,每个DHCP范围定义开始和结束地址.DHCP范围受相关子网范围的限制.DHCP范围不会相互重叠.我想要确定的是子网的下一个可用IP:
我正在寻找一个解决方案,找到最小可用地址或所有可用地址.
我最初的想法是生成由子网范围绑定的可能地址(数字)范围,然后根据使用的集删除地址:
declare @subnet_sk int = 42
;with …Run Code Online (Sandbox Code Playgroud) 我要做的是测试像素是否为蓝色.
例如:蓝色在RGB中定义为rgb(0,0,255).典型的颜色深度为8位(256色),16位(约65,000),24位(约1600万)和32位(超过40亿种不同颜色).因此,显然有超过1种蓝色.
如果蓝色与否,如何定义蓝色范围并测试每个像素?关于不同的深度,我需要记住什么?
到目前为止我的代码是:
BufferedImage image = ImageIO.read(file);
// Getting pixel color by position x and y
for (int i = 0; i < image.getWidth(); i++) {
for (int j = 0; j < image.getHeight(); j++) {
int clr = image.getRGB(i, j);
Run Code Online (Sandbox Code Playgroud)
注1:
http://www.workwithcolor.com/cyan-blue-color-hue-range-01.htm
这里的问题是,颜色步骤之间是什么?
一个例子就是很棒.
注2:
我刚刚发现了一个关于我感兴趣的话题的演讲:
在第13页,我们可以看到红色的定义.但是你如何定义其他颜色?