正则表达式获取具有特定子字符串的类名

2023-12-01

我需要 javascript 中的正则表达式,它将从空格分隔的字符串列表中获取具有特定子字符串的字符串。

例如,我有;

  • widget util cookie i18n-用户名

我希望能够仅返回 i18n-用户名。

How


您可以使用以下函数,使用正则表达式来匹配由空格或行首或行尾包围的字符串。但如果您打算使用正则表达式特殊字符,则必须小心准备它们,因为搜索参数将被解释为字符串而不是 RegExp 文字:

var hasClass = function(s, klass) {
  var r = new RegExp("(?:^| )(" + klass + ")(?: |$)")
    , m = (""+s).match(r);
  return (m) ? m[1] : null;
};

hasClass("a b c", "a"); // => "a"
hasClass("a b c", "b"); // => "b"
hasClass("a b c", "x"); // => null

var klasses = "widget util cookie i18n-username";
hasClass(klasses, "username"); // => null
hasClass(klasses, "i18n-username"); // => "i18n-username"
hasClass(klasses, "i18n-\\w+"); // => "i18n-username"

正如其他人指出的那样,您也可以简单地使用“split”和“indexOf”:

var hasClass = function(s, klass) {
  return (""+s).split(" ").indexOf(klass) >= 0;
};

但是,请注意,“indexOf”函数最近才被引入 JavaScript,因此对于较旧的浏览器,您可能必须自己实现它。

var hasClass = function(s, klass) {
  var a=(""+s).split(" "), len=a.length, i;
  for (i=0; i<len; i++) {
    if (a[i] == klass) return true;
  }
  return false;
};

[Edit]

请注意,对于大多数浏览器(尽管不是全部), split/indexOf 解决方案可能更快。这jsPerf 基准测试显示哪种解决方案对于各种浏览器来说更快 - 值得注意的是,Chrome 必须有一个非常好的正则表达式引擎!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式获取具有特定子字符串的类名 的相关文章

随机推荐

  • 课堂上的陈述作业

    class foo object def enter self print Enter def exit self type value traceback print Exit def method self print Method w
  • Wildfly 在 EAR 之间共享会话?

    我在 2 个独立的 EAR 中有 2 个 WAR 应用程序 我想将它们部署在 Wildfly 10 JBoss 7 EAP 的单个实例中 我如何在两场战争之间共享会话 身份验证 Ex EAR1 WAR1 EJB libs EAR2 WAR2
  • 如何在matlab中计算指数而不得到inf?

    标题说明了一切 我想在 matlab 中计算一个大数字的指数 但我得到了溢出 它只返回无穷大 gt gt 100 1000 ans Inf 上次我检查时 100 1000 明显小于无穷大 正如 Daniel 已经指出的那样 这个数字太大了
  • 如果不允许跨域ajax调用那么你应该如何使用谷歌电子表格API

    如果不允许跨域ajax调用那么你应该怎么做this 注意 链接已废弃 问题已更新为相关原始页面的相关部分 来自链接 开发人员指南 协议 v 2 0 Google Spreadsheets API 添加一行 要向表中添加一行 首先创建一个
  • 如何检测用户何时清除应用程序的通知

    我的应用程序有通知功能 当我收到通知时 我的应用程序图标中会显示一个徽章 据我所知 当我的应用程序处于后台时 由于用户没有单击通知中心的通知 因此我的应用程序不知道它有通知 所以它不能改变徽章号码 也来自这个主题 检测用户何时清除通知中心的
  • 执行 del 批处理文件时排除 temp 内的文件夹

    如果我想排除要删除的文件夹内的文件夹 我应该在 DEL 批处理文件中添加什么 我有这个代码来删除临时文件夹的所有内容 DEL F Q C temp 现在 我想排除一个名为导入文件夹里面 无论它是否存在于临时文件夹中 都不应被删除 我该怎么做
  • 如何在编译的 dart 中请求全屏

    我正在玩一个 Dart 应用程序 试图让全屏模式正常工作 我的 HTML 不包括样板 div Clicking this should cause it to go fullscreen div 我的飞镖代码 import dart htm
  • 您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误

    我在我的应用程序中使用 appcompat v22 1 0 并使用工具栏 我使用时一切都很好Theme AppCompat Light NoActionBar 当我开始实施时AlertDialog 它会产生这样的错误 java lang I
  • 在 AngularJS 中从父控制器调用指令控制器的方法

    我正在使用 AngularJS 并且我有一个指令 它有自己的控制器 它继承了父控制器的范围 例如 请考虑以下情况 function ParentCtrl scope aMethod function DO SOMETHING functio
  • 表视图单元格按钮关闭是否需要弱自我

    为了避免保留循环 将使用 weak self in在 UITableViewCell 按钮操作中是否有必要 例子 在视图控制器中cellForRow cell buttonAction cell weak self in self some
  • 如何将表单提交事件传播到自定义指令的父级?

    我有一个简单的 AngularJS 项目 我从用户那里获取输入数据并根据该数据生成图表 我试图弄清楚如何组织代码 使其符合MVC设计模式 特别是 我一直在弄清楚如何将表单的提交事件传播到自定义指令的父级 我正在寻找某种回调机制 似乎有多种选
  • 序数尺度行为

    我想创建一个序数尺度 范围和域之间具有一一对应的关系 我希望不属于该域的值 字符串不会返回任何内容 相反 我得到以下行为 var x d3 scaleOrdinal domain a b c range 10 20 30 x d 10 x
  • CardLayout 的父容器/面板

    我如何获得任何面板的 容器 面板CardLayout 也就是说 如果面板是一张卡片 在另一个 容器 面板中 那么如何从卡中获取对此 容器 面板的引用 这就是我正在做的 public class LogInPanel extends java
  • 删除所有不符合特定条件的数组元素

    我一直在调查array map但不确定这是否是最好的方法 我目前从我的返回以下数组scandir Array 0 gt 1 gt 2 gt DS Store 3 gt post my first test post html 4 gt po
  • 什么是休息?有点困惑[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我假设 REST 是一种 Web 服务 但我的想法似乎是错误的 那么 什么是 REST 我已经通读了维基百科 但仍然无法完全理解它 为什么很多地方将 API 称为 REST AP
  • 在 PHP PDO 中如何获取 PostgreSQL upsert 查询的“RETURNING”子句值

    我用 postgreSQL 编写了这个 upsert 查询 statement INSERT INTO CharactersUnlockToBuyLevels CharacterId LevelId AmountToBuy EagleSta
  • 如何检测 Windows 开始菜单/开始屏幕何时打开?

    如何为 Windows 开始菜单 或 Windows 8 开始屏幕 打开设置事件处理程序或回调 或者 至少 如何检查开始菜单当前是否打开 我更喜欢用 C 解决这个问题 但也非常感谢用 C 解决这个问题 显然 开始屏幕可见性回调 事件不适用于
  • 尝试使用 IIF 作为三元运算符/不评估两边

    我需要使用iif 对于我检查和分配值的情况 例如 Range A1 Value IIf IsNull Range A2 Value MsgBox 1 MsgBox 2 我真的对此感到困惑 该行正在执行两者MsgBoxes 我只需要执行其中之
  • pandas dataframe where子句带有点与括号列选择

    我有一个带有字符串类型 对象 列的常规 DataFrame 当我尝试使用相当于 WHERE 子句的列来过滤时 我得到了KeyError当我使用点符号时 当使用括号表示法时 一切都很好 我指的是这些说明 df df colA blah df
  • 正则表达式获取具有特定子字符串的类名

    我需要 javascript 中的正则表达式 它将从空格分隔的字符串列表中获取具有特定子字符串的字符串 例如 我有 widget util cookie i18n 用户名 我希望能够仅返回 i18n 用户名 How 您可以使用以下函数 使用