小编nat*_*evw的帖子

在字符类更改的位置拆分字符串

我想知道是否有一种[简洁]的方式来分割字符串,其中字符的"类"(例如Unicode类别,甚至简单的字母/数字/空格)会从一个变为另一个.

例如,类似的东西"18a.1.50".split(/\b/)几乎可以工作但产量["18a", ".", "1", ".", "50"]("18a"被认为是一个单词)而不是["18", "a", ".", "1", ".", "50"].

我更喜欢JS兼容的正则表达式语法的解决方案,但我也对"正则表达式"感到好奇.

javascript regex

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

使用反增量更改 z-index

我尝试制作一个图像滑块,当鼠标悬停在一个点上时,它将显示图片。我也尝试通过使用在图像之间切换z-index,但没有任何移动。

.slider {
  counter-reset: index 1000;
}

.slider input[name='slide_switch']:hover+label+img {
  counter-increment: index;
  z-index: counter(index);
}
Run Code Online (Sandbox Code Playgroud)

css z-index css-counter

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

如何在不关闭浏览器自动完成建议的情况下改进它们?

这里有十个无数的线程。如何禁用浏览器自动完成行为,例如如何禁用网络表单字段/输入标记上的浏览器自动完成行为?。我不想设置我autocomplete="off"的表单字段。正如关于如何执行此操作的MDN 文档所述:

\n\n
\n

重要的是要知道,如果您关闭自动完成功能,您就违反了 [WCAG 规则 1.3.5]

\n
\n\n

因此,作为禁用自动完成功能的替代方案,我想了解作为开发人员,我是否可以帮助浏览器为我的表单字段提供更相关的建议。

\n\n

事实上,我可以理解为什么许多开发人员(或他们的老板/客户)最终希望完全摆脱该功能。例如,当我将一个<input name="title">完全不相关的网站添加到我在本地开发的网站时,我的浏览器突然开始向我提供我多年来在多个 StackExchange 网站上提出/编辑的问题的随机样本:

\n\n

下拉列表以完全不同的形式建议六个不相关的 StackExchange 问题标题

\n\n

我如何帮助浏览器改善这里的用户体验?浏览器在选择建议文本时会考虑哪些因素?

\n\n
    \n
  • 显然,没有考虑域,除非我的测试通过localhost触发比正常情况更混杂的自动完成?
  • \n
  • 显然,至少有一个浏览器认为该字段的name属性具有通用语义含义,因为 Chrome 正在建议我在其他网站中输入的内容,而这些网站碰巧也使用name="title"其表单中使用。
  • \n
  • 表单本身的任何元数据是否会影响建议?例如,如果我将此输入包装在<form id="my-particular-form-has-nothing-to-do-with-qa-sites-btw">某些浏览器中,可能会将其自动完成范围限制为仅建议以前的name="title"条目进入my-particular-form\xe2\x80\xa6?
  • \n
\n\n

再说一遍,我并不是在寻找告诉我如何禁用自动完成功能的答案,也不是在抱怨这是询问如何做到这一点的问题的重复。我很高兴让浏览器帮助用户填写我的表单字段,但我希望帮助该帮助变得更加\xe2\x80\xa6有用。

\n\n

(或者,我是否误解了开始的目的autocomplete?它是否仅用于登录凭据、送货地址、信用卡号等用例,而我应该用于autocomplete="off"其他所有用途?)

\n

html accessibility autocomplete semantic-markup wcag

3
推荐指数
1
解决办法
680
查看次数

如何声明一个指向不可变内存块的常量“可变指针”

我想知道基本上如何(a const pointer to (a mutable pointer to (a const type)))在 C99 中声明。

假设我有这个呼叫站点:

const uint8_t* result;
create(&result);
Run Code Online (Sandbox Code Playgroud)

void create(const uint8_t * const * resultPtr)在这种情况下声明被调用者的方法是正确的还是意料之外的?我不需要重新分配resultPtr,调用者不应该[从这个角度来看],*resultPtr[0]但我的函数需要分配*resultPtr = ….

c const-correctness c99

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

在标准SQL中,是否可以以某种方式仅加入不同的匹配?

我有一个"子"对象表,每个对象都有一个外键到另一个表中的"父".

我想从每个有"孩子"的"父母"得到一个字段 - 但每个父母只有一次.如果该字段是唯一的,我可以通过以下方式完成:

SELECT DISTINCT parent.slug 
FROM parent 
INNER JOIN child 
   ON parent.id = parent_id;
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要的领域不是唯一的呢?如何加入不同的ID,而不是在加入后进行过滤?就像是:

-- this does not actually work
SELECT parent.first_name 
FROM parent 
INNER JOIN child 
   ON DISTINCT parent.id = parent_id;
Run Code Online (Sandbox Code Playgroud)

我希望每个父母有一个或多个孩子的单行.如果"John Smith"有五个孩子并且"John Doe"有九个孩子,我应该得到两个"John"行(每个父亲一个).

我想我可以这样做:

SELECT DISTINCT parent.id, parent.first_name 
FROM parent 
INNER JOIN child 
   ON parent.id = parent_id;
Run Code Online (Sandbox Code Playgroud)

...但这是最有效的方式,即使每个"父"行在实践中可能有数千个"子"行?

sql

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

从 stdout 设置 shell 变量*或* 如果命令失败则回退

我的脚本调用外部命令(例如readlink),它将:

\n\n
    \n
  • 成功时将有用的字符串写入其标准输出,或\xe2\x80\xa6
  • \n
  • 失败时返回非零退出状态
  • \n
\n\n

我知道如何单独执行每个操作,例如捕获我可以使用的标准输出

\n\n
MY_VAR=$(readlink /)\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者检查结果我可以使用:

\n\n
if readlink /tmp; then\n   echo "Success"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是有没有一种干净/清晰的方法可以同时执行 \xc2\xb1 呢?我不确定以下内容是否有效:

\n\n
if MY_VAL=`readlink "$MY_ARG"`; then\n    echo "Value is ${MY_VAL}"\nelse\n    echo "Not found"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新:所以我尝试了,而且确实如此有效。但这仅仅是巧合吗,例如,由于 readlink 的输出在出错的同时为空,所以恰好可以工作?

\n\n

作为一个特定的限制,我需要在一个环境中执行此操作set -e指定的环境中执行此操作,即如果其他命令返回错误,则整个脚本将失败。首选通用 shell,除非 bash 有更好的机制。

\n

bash sh

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

如果`uintptr_t` 可以用来存储指针和数字,为什么`void*` 不能做同样的事情?

Swift 或 Rust 等语言中的枚举支持一种混合的“选择加数据”机制,这样我就可以定义如下类型:

enum SomeOption {
  None,
  Index(int),
  Key(string),
  Callback(fn),
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我是用C实现这一点,我的理解是,这样的事情就不会是有效的:

enum SomeOption {
  None,
  Index(int),
  Key(string),
  Callback(fn),
}
Run Code Online (Sandbox Code Playgroud)

我不确定这样做到底有什么风险,但是根据例如可以指针存储值以及空指针的用途是什么?我应该存储在 avoid*中的唯一内容是实际地址和NULL. [旁白:请对在 a中存储回调函数指针的单独问题视而不见void*,我在编写此示例时忘记了这个问题。]

我想更合适的方法是使用联合,例如:

typedef struct {
   my_choice value_type;
   union {
      int number_value;
      char* string_value;
      void* pointer_value;
   };
} my_option;
Run Code Online (Sandbox Code Playgroud)

……无论如何,这可能更好。但我特别想知道void* valueversion的无效性。如果我是(而不是union解决)简单地替代uintptr_t的地方void*?

typedef struct {
   my_choice value_type;
   uintptr_t value;
} …
Run Code Online (Sandbox Code Playgroud)

c types pointers casting

0
推荐指数
1
解决办法
90
查看次数