jquery match() 变量插值 - 复杂的正则表达式

2024-01-12

我已经看过了this https://stackoverflow.com/questions/1695633?sort=newest#sort-top,这在一定程度上是有帮助的。

问题就在这里。我有一个通过用户单击传播到元素中的用户列表;像这样的东西:

<div id="box">
    joe-user
    page-joe-user
    someone-else
    page-someone-else
</div>

单击时,我想确保用户尚未被单击到 div 中。所以,我正在做类似的事情:

if ( ! $('#box').html().match(rcpt) )
{
   update_div();
}
else
{
   alert(rcpt+' already exists.');
}

然而,由于 javascript 缺乏对正则表达式的插值,导致我的警报在以下用例中触发:page-joe-user被选中,然后用户选择joe-user,这显然不完全相同。

在 Perl 中我会做类似的事情:

if ( $rcpt =~ /^\Qrcpt\E/ )
{
    # code
}

我想做的就是将 match() 更改为:

if ( ! $('#box').html().match(/^rcpt/) )
{
    # code
}

if ( ! $('#box').html().match(rcpt) )看起来有点有希望,但也失败了。使用new RegExp()在函数 IE 中使用复杂 RE 语法的串联也不起作用$('#box').html().match(new RegExp('^'+rcpt))。我也尝试过$('#box').html().match('/^'+rcpt'/')。我只能想象我错过了一些东西。我对 javascript 还很陌生。

我似乎无法在此网站上找到真正解决此类用例的任何内容。

TIA


The match函数仅适用于字符串,不适用于 jQuery 对象。

最好的方法是将每个用户名放入单独的 HTML 标记中。

例如:

<ul id="users">
    <li>joe-user</li>
    <li>page-joe-user</li>
    <li>someone-else</li>
    <li>page-someone-else</li>
</ul>

然后您可以编写以下内容:

if($('#users li').is(function () { return $(this).text() === rcpt; }))

如果你想按照自己的方式做,你应该打电话text()获取元素内的字符串。 ($('#box').text().match(...))


EDIT:使用 HTML 执行此操作的最佳方法是拆分字符串。

例如:

var userExists = false;
var users = $('#box').text().split(/\r?\n/);

for(var i = 0; i < users.length; i++) {   //IE doesn't have indexOf
    if (users[i] == rcpt) {
        userExists = true;
        break;
    }
}
if (userExists) {
    //Do something
}

这样做的额外好处是不易受到正则表达式注入的影响。

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

jquery match() 变量插值 - 复杂的正则表达式 的相关文章

  • jQuery 可以在用户输入数字时添加逗号吗?

    当用户输入数字时 如何动态添加逗号 有没有一个好的数字格式化程序可以提供帮助 我必须稍后添加这些数字 所以我最终必须删除一行中的逗号 但屏幕需要显示逗号以提高可读性 运行代码片段以查看其工作情况 input number keyup fun
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 与有效正则表达式匹配的正则表达式

    是否存在与有效正则表达式匹配的正则表达式 我知道正则表达式有多种风格 其中一种就可以了 是否存在与有效正则表达式匹配的正则表达式 根据定义 它非常简单 No 所有正则表达式的语言是no regular语言 只需查看嵌套括号 因此不可能有re
  • 如何判断 jquery 对话框是否打开? [复制]

    这个问题在这里已经有答案了 寻找通用案例解决方案来确定当前是否打开任何 jquery 对话框 有多个 试过 ui dialog content dialog isOpen true ui dialog dialog isOpen true
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • Javascript/Jquery:确定用户是否使用鼠标滚轮、滚动条或键盘滚动

    我正在尝试让用户界面正常工作 如果他们使用鼠标滚轮 我需要让它以一种方式滚动 如果他们使用滚动条 我需要让它以另一种方式滚动 如果他们使用键盘 我需要让它以另一种方式滚动 我相信滚轮和滚动条都充当鼠标事件 但是当单击滚动条时我无法让 jav
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 如何防止 Vim 在分割窗口时滚动?

    当我水平分割窗口时 我想阻止 Vim 滚动 如果这是正确的词 假设我在 Vim 中编辑一个 10 行文件 我在缓冲区上有一个窗口 窗口高 40 行 有足够的空间容纳两个窗口 一个在另一个之上 两个窗口都显示整个缓冲区 比方说scrollof
  • $parse、$interpolate 和 $compile 服务之间有什么区别?

    有什么区别 parse interpolate and compile服务 对我来说 他们都做同样的事情 获取模板并将其编译为模板函数 这些都是有助于 AngularJS 视图渲染的服务示例 尽管 parse and interpolate
  • Java 计算一年中的天数或两个日期之间的天数

    任何本机 Java 类中是否有一种方法可以计算特定年份中过去 将有多少天 就像 这是一个闰年 https en wikipedia org wiki Leap year 366天 还是平年 365天 还是需要我自己写 我正在计算两个日期之间
  • git - 只获取文件,不获取历史记录

    当我跑步时git pull or git fetch 我显然检索了历史记录和文件 对于大型项目来说 这需要花费很多时间 我想知道如何加快这个过程 对于某些项目 我只对源代码感兴趣 而不是对历史感兴趣 有没有办法告诉 git 我只想获取文件的
  • 在寄存器前加一个星号是什么意思?

    我正在研究c 如何通过汇编语言调用正确的成员函数 我附带的简单程序如下 class A public virtual void show class B public A public void show
  • 如何从外部进程打开 Visual Studio 中的现有工作项?

    我有一个控制台应用程序 它使用 TFS API 创建工作项 我希望应用程序在打开创建的工作项的情况下启动 Visual Studio 我试过 Process Start vstfs WorkItemTracking WorkItem 123
  • resignFirstResponder 不起作用?

    我尝试在 iPad 上隐藏键盘 但我不知道为什么 resignFirstResponder 不起作用 但 popToRoot 工作得很好 BOOL textFieldShouldReturn UITextField textField NS
  • 如何在grep结果中保留换行符?

    我想将 grep 结果分配给一个变量以供进一步使用 lines cat abc txt grep hello 但当我这样做时 似乎换行符在结果中被删除 echo lines 只打印一行 如何保留换行符 因此当我回显 lines 时 它会生成
  • Python 初学者 - 没有名为“mpi4py”的模块

    我是一名学生 第一次使用Python 目前我在虚拟机上使用 Xubuntu 19 10 我检查了 python 和 mpi4py 安装 我的 并行编程 教授给了我这个简单的 python 代码 from mpi4py import MPI
  • 渲染 JList 时更改光标

    我已经实现了我想要做的事情 但我忍不住认为有一种更有效的方法 请允许我来说明 简而言之 我要问的问题是是否有一种方法可以确定组件何时完成其初始渲染 我有一个 JList 它连接到 DefaultListModel 并由扩展了 Default
  • 主要 PHP/MySQL 登录项目,带有会话变量

    好吧 这两天我一直在网上搜寻并尽力搭建一个相当复杂的登录系统 我已经让它的核心工作起来了 用户可以注册并登录 我对简单的 php 和 mysql 并不陌生 但是当涉及到像这样的深入代码时 我迷失了 基本上我想要的是让用户输入他们的登录名 然
  • 如何完成这个python函数保存在同一个文件夹中?

    我正在尝试编写我的第一个真正的 python 函数 它可以做一些真正的事情 我想要完成的是搜索给定的文件夹 然后打开所有图像并将它们合并在一起 以便它们制作幻灯片图像 想象一下 5 个图像堆叠在一张图像中 我现在有了这段代码 应该没问题 但
  • 包含首字母缩略词的类的命名约定

    如果我用 OOP 语言命名一个新类 这是一个更好的约定 XMLWriter 最常见的 XMLwriter 更容易区分 XmlWriter 不再是缩写词 XML Writer 去掉了驼峰式的点 是的 很迂腐 但我很好奇谁使用什么以及为什么使用
  • 使用 python 脚本从 hdfs (hadoop) 目录获取文件列表

    如何使用python脚本从hdfs hadoop 目录中获取文件列表 我尝试过以下行 dir sc textFile hdfs 127 0 0 1 1900 directory collect 该目录有文件列表 file1 file2 fi
  • Node.js 和 CPU 密集型请求

    我已经开始修补 Node js HTTP 服务器 并且非常喜欢编写服务器端 Javascript 但有些事情阻止我开始在我的 Web 应用程序中使用 Node js 我了解整个异步 I O 概念 但我有点担心程序代码非常占用 CPU 资源的
  • 无法使用 OTG 端口连接 google Coral

    当我使用串行端口运行 google Coral 时 我可以运行演示应用程序 但是当我尝试运行时 谷歌珊瑚使用数据端口 C型电缆 我无法连接开发板 rahul ubuntu mdt shell 正在等待设备 连接到 Wishful yarn
  • JMeter 与远程服务器

    我正在尝试以分布式模式设置 JMeter 我有一个在 ec2 实例上运行的服务器 我希望主服务器在我的本地计算机上运行 我不得不跳过一些希望让 RMI 在服务器上正常工作 但通过将 java rmi server hostname 设置为
  • 使用 JS 将链接插入到选定的文本中(当用户专注于输入 URL 时丢失 window.getSelection() 值)

    我正在尝试将链接插入到选定的文本中 这在前端编辑器中很常见 我可以添加一个指向用户文本选择的链接 如下所示 var sel window getSelection var e document createElement a e inner
  • 使用 sed 删除匹配之前的所有行

    我正在使用 sed 来过滤文件列表 我有一个排序的文件夹列表 我想获取特定文件夹之后的所有行 为了完成这项任务 我使用了所描述的解决方案here https stackoverflow com a 5935779 518204它适用于我尝试
  • jquery match() 变量插值 - 复杂的正则表达式

    我已经看过了this https stackoverflow com questions 1695633 sort newest sort top 这在一定程度上是有帮助的 问题就在这里 我有一个通过用户单击传播到元素中的用户列表 像这样的