如何使用javascript从字符串中获取特定文本?

问题描述 投票:0回答:2

假设我有一个值为“this-is-the-whole-string-value-33297af405e6”的字符串。我想从这个字符串中提取最后一个数字部分。我正在寻找的结果只是“33297af405e6”。我怎样才能得到这个值?

javascript
2个回答
4
投票

为了获得最佳性能,没有什么比搜索字符串更快的了。如果您处理大量 JSON 数据,这可能至关重要。它比分割字符串快 3 倍以上:

const str = 'this-is-the-whole-string-value-33297af405e6';
const found = str.substring(str.lastIndexOf('-') + 1);

console.log(found);

并对不同的解决方案进行基准测试:

` Chrome/120
----------------------------------------------------------------
lastIndexOf    1.00x  |  x10000000   142   143   143   149   152
split + at     1.14x  |  x10000000   162   167   167   167   171
split + pop    1.42x  |  x10000000   201   204   204   205   214
regex         12.01x  |  x10000000  1706  1735  1736  1755  1764
----------------------------------------------------------------
https://github.com/silentmantra/benchmark `

<script benchmark data-count="10000000">

const str = "this-is-the-whole-string-value-33297af405e6";

// @benchmark split + pop

str.split('-').pop();

// @benchmark split + at

str.split('-').at(-1);

// @benchmark regex

str.match(/[^-]+$/)[0]

// @benchmark lastIndexOf

str.substring(str.lastIndexOf('-') + 1);

</script>
<script src="https://cdn.jsdelivr.net/gh/silentmantra/benchmark/loader.js"></script>


2
投票

split()
on
-
,并通过在数组上调用
pop()
来获取最后一部分:

const input = "this-is-the-whole-string-value-33297af405e6";

const output = input.split('-').pop();

console.log(output); // 33297af405e6

© www.soinside.com 2019 - 2024. All rights reserved.