小编Cer*_*nce的帖子

将除 <pre> 标签内以外的换行符替换为 <pre> 标签内的括号 (<>)

我使用问题中可用的答案替换了预标记之外的所有换行符。

\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)

这是不正确的 - 并非所有换行符都被删除。

请参阅 …

regex regex-negation regex-greedy

5
推荐指数
1
解决办法
192
查看次数

链接多个 Promise.all() 语句

我是 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)

javascript

5
推荐指数
1
解决办法
1534
查看次数

如何在多个 switch case 中使用用 let 声明的变量名?

我正在尝试使用 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 且不声明具有不同名称的变量的情况下解决此问题。提前致谢。

javascript switch-statement

5
推荐指数
1
解决办法
4772
查看次数

布局与上下文无关的HTML元素

我想自由浮动一个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项目的列表以不同的项目符号结尾。可以抑制/覆盖该特定属性,但是如何将所有内容 “重置” 为顶级范围内的呢?

https://jsfiddle.net/tfy172x0/3/

html css

5
推荐指数
1
解决办法
73
查看次数

Google Analytics拦截所有请求

每当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)

javascript google-analytics

5
推荐指数
1
解决办法
243
查看次数

Javascript:event.preventDefault() 不适用于日语 IME

我想创建一个不允许输入任何字符的文本输入(与禁用输入相同,但鼠标光标仍然显示)

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输入日语全角字符时,它不起作用(仍然可以输入字符)

您知道问题出在哪里吗?有什么解决办法吗?

html javascript cjk ime

5
推荐指数
1
解决办法
1164
查看次数

Javascript 开玩笑期望 0 等于 -0

我试图在 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)

在这种情况下我应该使用什么断言比较?

javascript jestjs

5
推荐指数
1
解决办法
1730
查看次数

在 javascript 中更改 CSS 属性

我想使用 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)

html javascript css

5
推荐指数
1
解决办法
72
查看次数

单表达式箭头函数中的 void

我正在研究优秀的老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()) // undefined
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释fn1和之间的区别fn2吗?它是否在“引擎盖下”做了一些不同的事情?这只是约定/可读性的问题吗?

javascript

5
推荐指数
1
解决办法
242
查看次数

编写此 JS reduce() 代码的更好方法?

下面的函数使用 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)

javascript

5
推荐指数
1
解决办法
79
查看次数