问题标签 [case-insensitive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
88829 浏览

unix - 如何使用 less 使用模式修饰符进行不区分大小写的搜索?

似乎唯一的方法是在您最初运行较少时传递 -i 参数。有谁知道一些秘密的黑客来做这样的事情

0 投票
16 回答
108326 浏览

python - 忽略 Python 字符串中的大小写

在Python中比较字符串的最简单方法是什么,忽略大小写?

当然可以做 (str1.lower() <= str2.lower()) 等,但这会创建两个额外的临时字符串(具有明显的 alloc/gc 开销)。

我想我正在寻找与 C 的 stricmp() 等效的东西。

[需要更多上下文,所以我将用一个简单的例子来演示:]

假设您要对一个冗长的字符串列表进行排序。您只需执行 List.sort()。这是 O(n * log(n)) 字符串比较并且没有内存管理(因为所有字符串和列表元素都是某种智能指针)。你很快乐。

现在,您想做同样的事情,但忽略大小写(让我们简化并假设所有字符串都是 ascii,因此可以忽略语言环境问题)。您可以执行 theList.sort(key=lambda s: s.lower()),但是每次比较都会导致两个新的分配,加上重复(降低)字符串的垃圾收集器负担。每个这样的内存管理噪音都比简单的字符串比较慢几个数量级。

现在,使用就地类似 stricmp() 的函数,您可以执行以下操作:theList.sort(cmp=stricmp),它与 ​​theList.sort() 一样快速且内存友好。你又快乐了。

问题是任何基于 Python 的不区分大小写的比较都涉及隐式字符串重复,所以我期待找到基于 C 的比较(可能在模块字符串中)。

找不到类似的东西,因此这里的问题。(希望这可以澄清问题)。

0 投票
12 回答
318464 浏览

javascript - 不区分大小写的搜索

我正在尝试在 JavaScript 中使用两个字符串进行不区分大小写的搜索。

通常它会是这样的:

/i标志将用于不区分大小写。

但我需要搜索第二个字符串;没有标志,它可以完美运行:

如果我将/i标志添加到上面的示例中,它将搜索 searchstring 而不是变量“searchstring”中的内容(下一个示例不起作用):

我怎样才能做到这一点?

0 投票
8 回答
24490 浏览

java - 有没有一个好方法有一个地图获取并放置忽略大小写?

有没有一个好方法可以Map<String, ?>忽略大小写?

0 投票
7 回答
57301 浏览

javascript - JavaScript中不区分大小写的字符串替换?

我需要不区分大小写地突出显示 JavaScript 字符串中的给定关键字。

例如:

  • highlight("foobar Foo bar FOO", "foo")应该返回"<b>foo</b>bar <b>Foo</b> bar <b>FOO</b>"

我需要代码适用于任何关键字,因此使用硬编码的正则表达式就像/foo/i不是一个足够的解决方案。

最简单的方法是什么?

(这是标题中详述的更普遍问题的一个例子,但我觉得最好用一个具体的、有用的例子来解决。)

0 投票
11 回答
951812 浏览

python - 如何进行不区分大小写的字符串比较?

如何在 Python 中进行不区分大小写的字符串比较?

我想以一种非常简单和 Pythonic 的方式封装常规字符串与存储库字符串的比较。我还希望能够在使用常规 python 字符串的字符串散列的字典中查找值。

0 投票
4 回答
705 浏览

sql - Openbase SQL 区分大小写的奇怪之处('=' vs. LIKE)——移植到 MySQL

我们正在将以前使用 Openbase 7 的应用程序移植到现在使用 MySQL 5.0。

OB 7 在区分大小写方面确实有非常糟糕的定义(即未记录的)行为。我们现在只是在使用 MySQL 尝试相同的查询时才发现这一点。

看起来 OB 7 处理使用“=”的查找与使用“LIKE”的查找不同:如果您有两个值“a”和“A”,并使用 WHERE f="a" 进行查询,那么它只会找到“ a”字段,而不是“A”字段。但是,如果您使用 LIKE 而不是“=”,那么它会同时找到两者。

我们对 MySQL 的测试表明,如果我们使用非二进制排序规则(例如 latin1),那么“=”和“LIKE”都会不区分大小写。然而,为了模拟 OB 的行为,我们只需要让“=”区分大小写。

我们现在正试图弄清楚如何在 MySQL 中处理这个问题,而不必为我们所有的查询添加大量的 LOWER() 函数调用(有很多!)。

我们可以完全控制 MySQL 数据库,这意味着我们可以随意选择它的排序模式(幸运的是,我们的表名和唯一索引不受区分大小写问题的影响)。

任何建议如何以最少的代码更改模拟 MySQL 上的 OpenBase 行为?

(我意识到在我们的源代码中添加 LOWER 调用的一些智能正则表达式替换可能会起到作用,但我们宁愿找到不同的方法)

0 投票
4 回答
2531 浏览

winapi - Win32 文件名比较

有谁知道 Win32 在处理不区分大小写的文件名时使用什么文化设置?

这是根据用户的文化而变化的东西,还是 Win32 使用文化不变的大小写规则?

0 投票
29 回答
1060489 浏览

c# - 不区分大小写的“包含(字符串)”

有没有办法使以下返回为真?

似乎没有允许我设置区分大小写的过载。目前我将它们都大写,但这很愚蠢(我指的是上下大小写带来的i18n问题)。

更新

这个问题很古老,从那时起,我意识到如果您愿意全面调查,我会要求一个非常广泛而困难的主题的简单答案。

在大多数情况下,在单语英语代码库中,这个答案就足够了。我怀疑是因为大多数来这里的人都属于这一类,这是最受欢迎的答案。

然而,这个答案带来了一个固有的问题,即在我们知道两个文本是相同的文化并且我们知道那种文化是什么之前,我们无法比较不区分大小写的文本。这可能是一个不太受欢迎的答案,但我认为它更正确,这就是我将其标记为这样的原因。

0 投票
9 回答
427525 浏览

python - 不重新编译的不区分大小写的正则表达式?

在 Python 中,我可以使用以下命令编译一个不区分大小写的正则表达式re.compile

有没有办法做同样的事情,但不使用re.compile. 我在文档中找不到类似 Perl 的i后缀(例如m/test/i)的东西。