给定任意像素的连续绘制(例如在HTML5 Canvas上)是否有任何算法用于找到轴对齐的边界框,这比仅查看每个像素并记录最小/最大x/y值更有效?
考虑以下分析三字节UTF-8字符串的Ruby代码:
#encoding: utf-8
s = "\x65\xCC\x81"
p [s.bytesize, s.length, s, s.encoding.name]
#=> [3, 2, "é", "UTF-8"]
Run Code Online (Sandbox Code Playgroud)
正如我在本页面上所描述的那样,上面确实是一个两个字符的字符串:拉丁文小写字母,e然后是" 结合急性重音".但是,它看起来像一个字符,这在布置固定宽度显示时很重要.
例如,查看此目录列表中 "moiré.svg"的两个条目,并注意其中一个条目如何搞乱列对齐.
如何计算Ruby中字符串的"等宽视觉长度",其中不包含任何零宽度组合字符?(一个有效的技术可能变换一个Unicode字符串到它的规范表示的方式,到上述转动"\xC3\xA9"它也像é,但有一个length的1.)
我已经看到了很多输出变量的方法。这些方法中哪一种“更好”?
my_name = 'Jeff Hall'
my_height = 74
puts "Let's talk about %s." % my_name
puts "He's %d inches tall." % my_height
Run Code Online (Sandbox Code Playgroud)
对比
puts "Let's talk about #{my_name}."
puts "He's #{my_height} inches tall."
Run Code Online (Sandbox Code Playgroud)
另外,在 之后s和d代表%什么?
我有一个 html 表单字段,人们可以在其中输入编码如下的日期:
input type="text" name="dateofbirth" placeholder="dd/mm/yyyy"
Run Code Online (Sandbox Code Playgroud)
我试图找到一个 JavaScript 来检查日期是否以dd/mm/yyyy格式输入(所以 10 个字符,2/2/4)
任何意见将不胜感激。只是第一次使用 javascript 并且一直做得很好,直到这个小问题。
编辑:代码(表单名称为“注册”)
// JavaScript Document
function validateForm(signup) {
{
var x = document.forms["signup"]["dateofbirth"].value;
var reg = /(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d/;
if (x.match(reg)) {
return true;
}
else {
alert("Please enter dd/mm/yyyy");
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在rails应用程序中有一些域数据,我正在尝试为其创建一些常量.这是我在Dan Chak的Enterprise Rails第7章中遇到的问题.我做了以下事情:
G = Rating.find_by_rating_code('G')
Run Code Online (Sandbox Code Playgroud)
然后当我使用Rating :: G时,返回适当的评级记录.这非常有效.我的问题出现是因为我有150个评级代码.因此,我没有为每个评级代码键入上面的代码行,而是希望使用一些元编程来避免使用大量冗余代码来混淆我的模型.因此,我尝试了以下内容.
RATINGSCODES = %w(G A AB TR P ...)
class << self
RATINGSCODES.each do |code|
code.constantize = Rating.find_by_rating_code(code)
end
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了一个未初始化的常量错误,无法弄清楚我哪里出错了.我是否以正确的方式接近这一点.我也试过使用const_get,但似乎也没有用.
根据下面的建议,我也尝试过使用
code.const_set = Rating.find_by_rating_code(code)
Run Code Online (Sandbox Code Playgroud)
这产生了以下错误:
undefined method `const_set=' for "G":String
Run Code Online (Sandbox Code Playgroud) 我有一个数组和一个哈希
L = []
H = {3=>"a", 2=>"b", 1=>"c"}
因此,我将迭代键以获得元素出现的次数,并将该元素追加到数组n次
结果
L = ['a', 'a', 'a', 'b', 'b', 'c']
使用inject(或者我经常在ruby代码中看到的其他方法)编写这个的好方法是什么?
我正在尝试制作一个正则表达式,允许使用小字母和大字母+数字创建字符串 - a-zA-z0-9以及字符:.-_
我如何制作这样的正则表达式?
我正在尝试编写此regEx(javascript)来匹配word1和word2(当它存在时):
This is a test. Here is word1 and here is word2, which may or may not exist.
我试过这些:
(word1).*(word2)?
这只会匹配,word1无论是否word2存在.
(word1).*(word2)
这将匹配两者,但仅在两者都存在时才匹配.
我需要一个正则表达式匹配word1和word2 - 可能存在也可能不存在.
tl;dr:如何使两个范围作为一个函数的参数出现?例如,我想查看 E 列中除E5之外的每个单元格:
=MY_FUNCTION( somehowjoin( E1:E4, E6:E ) )
背景
我正在 Google 表格中编写项目跟踪器,例如 Microsoft Project。我在 Google Sheets中有一个自定义函数,它允许我通过查看它所依赖的所有任务的最大结束日期来计算各种任务的开始日期:
=MAX_LOOKUP( G9, A:A, I:I )
Run Code Online (Sandbox Code Playgroud)
但是,此任务的结束日期将根据开始日期计算,并且该结束日期位于包含所有检查结束日期的列中。结果,我有一个循环依赖。

因此,我想为每一行编写我的公式以跳过当前行,例如:
=MAX_LOOKUP( G9, A1:A8 + A10:A, I1:I8 + I10:I )
Run Code Online (Sandbox Code Playgroud)
FWIW 我目前的解决方法是重写自定义函数的签名,如下所示:
=MAX_LOOKUP_SKIPROW( G9, ROW(), "A", "I" )
Run Code Online (Sandbox Code Playgroud)
并使用以下方法手动构建该函数内的两个范围:
=MAX_LOOKUP( G9, A:A, I:I )
Run Code Online (Sandbox Code Playgroud)
这是一个功能性的解决方案,但使该功能更具特殊用途。我不认为这是对加入范围这个更普遍的问题的“答案”。
在QML中,我正在写一个这样的组件:
import QtQuick 2.0
import NDDQuickItem 1.0
Item {
property alias source: ndd.nddContentPath
function goToSlide(component,slide){
ndd.goToSlide(component,slide);
}
NDDQuickItem {
width: parent.width
height: parent.height
id: ndd
}
}
Run Code Online (Sandbox Code Playgroud)
我可以property alias用来"提升" NDDQuickItem组件根目录的属性.但是,如图所示,我目前正在编写仅重新调用方法的组件全局方法NDDQuickItem.
是否有相同property alias的方法?就像是:
method alias goToSlide: ndd.goToSlide // not valid QML
Run Code Online (Sandbox Code Playgroud)
要么
goToSlide = ndd.goToSlide // not valid QML
Run Code Online (Sandbox Code Playgroud) ruby ×5
javascript ×2
regex ×2
aabb ×1
arrays ×1
bounding-box ×1
graphics ×1
html ×1
pixels ×1
qml ×1
qt ×1
unicode ×1
validation ×1