在Eloquent JavaScript 第9章:正则表达式下的" 解析INI文件 "一节中,有一个例子,其中包含一个我根本没有捕获的正则表达式.作者试图解析下一个内容:
searchengine=http://www.google.com/search?q=$1
spitefulness=9.7
; comments are preceded by a semicolon...
; each section concerns an individual enemy
[larry]
fullname=Larry Doe
type=kindergarten bully
website=http://www.geocities.com/CapeCanaveral/11451
[gargamel]
fullname=Gargamel
type=evil sorcerer
outputdir=/home/marijn/enemies/gargamel
Run Code Online (Sandbox Code Playgroud)
关于这种格式的规则说明
以分号开头的空行和行将被忽略.
解析此内容的代码遍历文件中的每一行.为了处理评论,他包括了这个表达式
^\s*(;.*)?
Run Code Online (Sandbox Code Playgroud)
据我所知,这个表达式可以从一系列序列开始
空格字符,包括空格,制表符,换页符,换行符和其他Unicode空格
(来源),直到它出现一个分号; 然后是一系列" 除行终止符之外的任何单个字符:\n,\ r,\ u2028或\ u2029. ".所有这些仅限于{0,1}出场.
我没有得到量词的观点?这里.我无法找到(regex101)任何不限制匹配字符串外观的情况都是个问题.为什么表达式与另一个表达式不同:
^\s*(;.*)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
每天我都要更新一堆存储库,并在其中一些执行另一个命令(来自CARTON,Perl模块依赖管理器).我总是使用一个循环做到这一点,但我想这样做平行GNU平行,如果它是可能的,但我不明白这么好它的教程.
我读过的更有相似之处可以帮助我被称为"在所有主机上运行相同的命令",所以我进入了所有repos的目录并尝试执行:parallel --onall carton但我不知道它是否有效.有人可以帮帮我吗?
我正在通过“Eloquent JavaScript”手册学习 JavaScript ,现在我正在做第 5 章“高阶函数”中的练习。本章向您介绍的功能之一是“ reduce ”。我理解它是如何工作的,当我试图在MDN上理解它的定义时,我的问题就出现了。我不明白它给出的语法定义:
arr.reduce(callback[, initialValue])
Run Code Online (Sandbox Code Playgroud)
此语法部分之后是称为参数的部分。这些是:
我不明白的是那些方括号和逗号是什么意思?因为当我立即看到方括号时,我会想到数组。为什么只是initialValue在定义中而不是其他参数?为什么方括号和之间没有空格callback?
因为下面有两个例子:
示例 1
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)
示例 2
var total = [0, 1, 2, 3].reduce(function(a, b) {
return a + b;
});
// total == 6
Run Code Online (Sandbox Code Playgroud)
我不知道它们如何符合定义。
谢谢
我正在阅读" Eloquent JavaScript ".第3章介绍了" 闭包 "概念,并给出了几个例子.其中一个是下一个:
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// ? 10
Run Code Online (Sandbox Code Playgroud)
我想我理解这个概念.如果我先执行console.log(twice),因为变量number是未定义的,我得到的是[Function].我不明白的是如何twice(5)运作.为什么局部变量number用值初始化5?
另外,为什么如果我执行console.log(multiplier(2,5))我不会得到10结果?
谢谢.
我刚刚编写了这段代码来测试我们网站德语版的登录过程:
describe('login', () => {
context('Language: DE', () =>{
beforeEach(() => {
...
})
it('links to #/passwordforgotten', () => {
...
})
it('links to #/register', () => {
...
})
it('links to login further options', () => {
...
})
it('requires username', () => {
...
})
it('requires password', () => {
...
})
it('requires valid username and password', () => {
...
})
it('navigates to #/ on successful login', () => {
...
})
})
})
Run Code Online (Sandbox Code Playgroud)
我们的网站以九种语言提供。我是否应该为每种语言复制这段代码:
describe('login', () …Run Code Online (Sandbox Code Playgroud) 我写了这个 html 和 css 代码:
HTML
<body>
<div id="container">
<div id="containerHeader">
<h1>Seek & enjoy</h1>
<h3>Your movie seeker</h3>
<div id="containerForm">
<form class="form-wrapper cf">
<div id="inputplusbuttons">
<input type="text" placeholder="Find your movie" required>
<div id="containerButtons">
<button id="seek" type="submit">Seek</button>
<button id="reset" type="submit">Reset</button>
</div>
</div>
</form>
</div>
</div>
<div id="results">
<p>
</p>
<div id="movieList">
</div>
<div id="movieDetails">
</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将输入放入 div 中,但我失败了,不知道为什么(CSS 代码在 JSFidFiddle 上)。我达到了这两个选项
在选项 1 中,输入宽度为 100%,但输入比 div 长。在选项 2 中,我添加了overflow: hidden但输入被切断,我不喜欢那样。
有人知道我可以尝试解决的其他问题吗?
谢谢
我正在编写 login.spec.js,此时,我正在检查进一步登录选项链接的可用性(我仍然没有机会创建特定标签来测试这些元素,正如最佳实践所建议的那样):
<span id="DDB_Social_List">
<span>Further login options:</span>
<a href="..."><span><label class="icon soclgn facebook"></label><strong>Facebook</strong></span></a>
<a href="..."><span><label class="icon soclgn paypal"></label><strong>Paypal</strong></span></a>
<a href="..."><span><label class="icon soclgn microsoft"></label><strong>Windows Live</strong></span></a>
</span>
Run Code Online (Sandbox Code Playgroud)
我实现了两种不同的方法来检查这些链接的可用性:
cy.get('span#DDB_Social_List > a:nth-child(2)').should('have.attr', 'href','...')
Run Code Online (Sandbox Code Playgroud)
和
cy.contains('Facebook').should('have.attr', '...')
Run Code Online (Sandbox Code Playgroud)
哪种方式更好,为什么?我完全不知道。
Eloquent JavaScript中有一个练习,其措辞是:
递归
我们已经看到
%(余数运算符)可以用来测试一个数是偶数还是奇数,% 2用来检查它是否可以被2整除.这是另一种定义正整数是偶数还是奇数的方法:
- 零是均匀的.
- 一个是奇怪的.
- 对于任何其他数字N,其均匀度与N-2相同.
定义
isEven与此描述相对应的递归函数.该函数应接受一个数字参数并返回一个布尔值.在50和75上测试它.看看它在-1上的表现.为什么?你能想出解决这个问题的方法吗?
他们提供了一个解决方案,我已经编写了一个有效的实现,但另一个总是返回undefined; 为什么是这样?
var isEven = function ( a ) {
var r = false;
if ( a === 0 || a === 1 ) {
a === 0 ? r = true : r ;
return r;
} else
a < 0 ? isEven(-1 * a) : isEven(a - 2);
};
console.log(isEven(50));
Run Code Online (Sandbox Code Playgroud)
当数字不是0或1时,else分支似乎工作正常; 我认为,这个问题存在于if分支机构中.
javascript ×6
cypress ×2
arrays ×1
closures ×1
css ×1
currying ×1
gnu-parallel ×1
html ×1
quantifiers ×1
regex ×1