如何使用JavaScript(不是jQuery)从字符串中过滤前缀和修剪单词

How to filter prefix and trim words from a string with JavaScript (not jQuery)

本文关键字:过滤 前缀 单词 修剪 字符串 JavaScript 何使用 不是 jQuery      更新时间:2023-09-26

我从来不擅长字符串操作,现在我卡住了。因此,长字符串具有以下内容:

[desktop-detected display-settings  main-boxed  pace-done header-function-fixed nav-function-fixed nav-function-hidden nav-function-minify mod-sound mod-font]

我想过滤并保留带有 nav-、header-和 mod-* 前缀的字符串,因此清理后的字符串应如下所示:

[header-function-fixed nav-function-fixed nav-function-hidden nav-function-minify mod-sound mod-font]

我不知道如何开始,完全没有头绪...

拆分、过滤和连接

var result = '[' + string.split(/[^'w-]+/).filter(function(item) {
    return /^(nav|header|mod)-/i.test(item);
}).join(' ') + ']';

JSFiddle 演示:https://jsfiddle.net/c3nff3p6/2/

/[^'w-]+/通过不匹配单词或破折号作为分隔符将短语拆分为数组。

如果项目以这些值之一开头,后跟短划线,则/^(nav|header|mod)-/i匹配,不区分大小写。

其他解决方案,谢谢@Tushar。

'[' + string.slice(1, -1).split(/'s+/).filter(str => /^(nav|header|mod)-/.test(str)).join(' ') + ']'

使用匹配

'[' + string.slice(1, -1).match(/'b(nav|header|mod)-'S*/g).join(' ') + ']'