我使用问题中可用的答案替换了预标记之外的所有换行符。
\n(?![^<]*<\/pre>)
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到预标记中的内容有 < 或 > 括号。
例如,输入:
<p>Test contennt for regex
with line breaks</p>
<pre>code block
with multi line content
working fine</pre>
<pre class="brush:C#">
test line break before
open paranthesis < is not working fine
line breaks after paranthesis
is accepted
</pre>
Run Code Online (Sandbox Code Playgroud)
输出是
<p>Test contennt for regexwith line breaks</p><pre>code block
with multi line content
working fine</pre><pre class="brush:C#">test line break before open paranthesis < is not working fine
line breaks after paranthesis
is accepted
</pre>
Run Code Online (Sandbox Code Playgroud)
这是不正确的 - 并非所有换行符都被删除。
请参阅 …
我是 JavaScript 新手,很难链接多个 Promise.all() 语句。下面是我的代码的高度简化版本。
function a(x) {
return new Promise(function(resolve) {
setTimeout(resolve(x*2), 500)
});
}
function b(x) {
return new Promise(function(resolve) {
setTimeout(resolve(x*3), 400)
});
}
function c(x) {
const promises = [a(x),b(x)];
Promise.all(promises).then(function(y){
z = y[0] + y[1]
return new Promise(function(resolve, reject){
resolve(z);
});
});
}
function d(x) {
const promises = [];
for (let input of x){
promises.push(c(input))
}
Promise.all(promises).then(function(z){
console.log(z);
});
}
const data = [1,2,3,4,5];
d(data);Run Code Online (Sandbox Code Playgroud)
我希望看到这个打印出来:
[5, 10, 15, 20, 25]
Run Code Online (Sandbox Code Playgroud)
但我看到的是这样的:
[undefined, undefined, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 switch 语句来执行任务。我在第一种情况下使用 let 声明了一个变量。但是当我尝试在第二种情况下访问它时,它显示“未捕获的引用错误:t未定义”
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
console.log(t);
}Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的引用错误:t 未在 :6:21 定义
但如果我尝试在第二种情况下声明相同的变量
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
let t = 150;
console.log(t);
}Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的语法错误:标识符“t”已被声明
为什么会发生这种情况?如何在不使用 var 且不声明具有不同名称的变量的情况下解决此问题。提前致谢。
我想自由浮动一个DOM块,它恰好包含一个<UL>相对于元素的,恰好在一个中<UL>,并且我希望DOM块的布局不是其父级的功能。好像它是该<body>元素的直接子代。
的HTML
<UL><LI>aaa</LI></UL>
<HR>
<UL>
<li>
<span class="r">x-<div class="freefloat">
<UL><LI>aaa</LI></UL>
</div></span>
</li>
<li>hello world</li>
</UL>
Run Code Online (Sandbox Code Playgroud)
的CSS
.r { position: relative; }
.freefloat { position: absolute; top: 0px; left: 1em; }
Run Code Online (Sandbox Code Playgroud)
在示例中,两个带有aaa项目的列表以不同的项目符号结尾。可以抑制/覆盖该特定属性,但是如何将所有内容 “重置” 为顶级范围内的呢?
每当Google Analytics(分析)将数据发送到服务器时,我都希望获得回调。我也想将相同的数据发送到我的服务器。有可能吗?
https://jsfiddle.net/bk1j8u7o/2/
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-143361924-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-143361924-1');
</script>
Run Code Online (Sandbox Code Playgroud) 我想创建一个不允许输入任何字符的文本输入(与禁用输入相同,但鼠标光标仍然显示)
function loadPage() {
const el = document.getElementById('input-id');
el.addEventListener('keydown', (event) => {
event.preventDefault();
});
}
loadPage();Run Code Online (Sandbox Code Playgroud)
<input maxlength="0" id="input-id">Run Code Online (Sandbox Code Playgroud)
上面的代码适用于普通字母字符。但是,当我使用IME输入日语全角字符时,它不起作用(仍然可以输入字符)
您知道问题出在哪里吗?有什么解决办法吗?
我试图在 ts 中创建一个笑话测试,结果应该等于 0。这似乎在 -0 上失败。
test("zero equals fails", () => {
const actual = -0
const expected = 0
// expect(actual).toBe(expected)
// expect(actual).toStrictEqual(expected)
// expect(actual).toEqual(expected)
})
Run Code Online (Sandbox Code Playgroud)
给出:
Expected: 0
Received: -0
Run Code Online (Sandbox Code Playgroud)
即使我的控制台中的 equals 检查说它们相等。
0 == -0
true
0 === -0
true
Run Code Online (Sandbox Code Playgroud)
在这种情况下我应该使用什么断言比较?
我想使用 JS 在 html 图像中进行渐变模糊过渡。我使用的是初始样式,然后使用文档对象和全局变量更新样式属性。
但以下代码不会更新任何内容:
var val = 8
function adjust_blur() {
document.getElementById("image").style.filter = blur(String(val) + "px")
val -= 1;
}
function update_blur() {
window.setTimeout(adjust_blur, 1000)
}Run Code Online (Sandbox Code Playgroud)
#image {
filter: blur(1px);
max-width: 600px;
}Run Code Online (Sandbox Code Playgroud)
<img src='https://image.freepik.com/free-vector/modern-yellow-bitcoin-design_1017-9631.jpg' id='image'>Run Code Online (Sandbox Code Playgroud)
我正在研究优秀的老void运营商的用例。我看到提到的一个是为了防止箭头函数“泄漏”它们的结果,因为它们经常被编写(见fn0下面的例子)。
因此,论点是void在您实际上不需要结果的情况下使用来防止此类泄漏(请参阅 参考资料fn2),但我真的不明白仅将语句括在括号中(请参阅 参考资料fn1)有什么区别。
function doSomething(number) { return number + 1 }
const fn0 = () => doSomething(1)
const fn1 = () => { doSomething(1) }
const fn2 = () => void doSomething(1)
console.log(fn0()) // 2
console.log(fn1()) // undefined
console.log(fn2()) // undefinedRun Code Online (Sandbox Code Playgroud)
有人可以向我解释fn1和之间的区别fn2吗?它是否在“引擎盖下”做了一些不同的事情?这只是约定/可读性的问题吗?
下面的函数使用 reduce 函数简单地返回给定数组中的最小元素。但是,我很快意识到如果给定的数组为空,下面的代码会抛出一个 TypeError :
function findSmallestElement(arr) {
return arr.reduce((a,b) => a < b ? a : b); //throws TypeError if arr is an empty array
}
Run Code Online (Sandbox Code Playgroud)
所以我通过在reduce()方法之前加入一个快速的if语句来处理它,如下所示。我想知道,是否有更优雅/简洁的方法来做到这一点,因为如果数组为空,我必须返回 0?
function findSmallestElement(arr) {
if (arr.length === 0) return 0;
return arr.reduce((a,b) => a < b ? a : b);
}
Run Code Online (Sandbox Code Playgroud)