Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript & Regex,多个匹配

Javascript & Regex,多个匹配
EN

Stack Overflow用户
提问于 2013-01-05 19:38:20
回答 2查看 92关注 0票数 0

我有一个简短的问题要问你(对于你,我个人已经在这上面花了几个小时)。我已经在Javascript/Jquery中创建了一个web应用程序来验证CSS样式表。

我需要用Regex从选择器中提取多个CSS类名。我做了一些类似的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var selector = this.value;
var userNewClass = selector.match(/[.]([A-Za-z_-]*)/);
alert(userNewClass.toString());

它几乎可以工作了,但是我的代码有两个问题(这里有一个Regex noob )。如果我这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.test:hover

它返回我

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.test, test 

相同的类名,但用点打开,另一个不带点。如果我编写一个具有多个类名的选择器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.test, .hello

我在那里得到了相同的result...Is来修改我的正则表达式(或者我的代码?)要获取所有带有点(.)的类名,请执行以下操作只是,考虑到用户在同一个选择器中可以有无限数量的类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 19:42:58

.test是完全匹配,test是捕获的组(括号()中的任何内容)。您还需要在结束/之后的末尾添加一个g,以匹配每个实例,而不仅仅是第一个实例。

也就是说,您可能不需要正则表达式,在字符串上使用split可能会更好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'.test, .hello'.split(', ') // returns an array ['.test', '.hello']

如果你一定要使用正则表达式,试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/\.(\w+)/g

这将匹配(并捕获)文字.后面的一个或多个字母和/或数字\w+的任何和所有序列

票数 2
EN

Stack Overflow用户

发布于 2013-01-05 19:55:21

您必须使用RegExp.exec方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var input = ".test1.test2 .test3, .test4";

var re = /\.[\w\-]+/ig, match, matches = [];

while (match = re.exec(input)) {
  matches.push(match[0]);
}

alert(matches);

使用split将不起作用,因为您必须解析出伪类和所有其他可能的CSS语法元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14175595

复制
相关文章
python 执行完成后,cmd窗口自动关闭
一般脚本运行完需要点击一下 在代码最后添加以下内容即可自动关闭cmd: import os import time time.sleep(1) # 方便展示,可删除 os.system("taskkill /f /im cmd.exe") # 关闭cmd窗口
Michael阿明
2021/09/06
3.3K0
Qt编译完成后自动执行脚本
有时候我们编译程序完成后需要执行某些操作,比如复制执行文件或库文件到指定目录,如果这些都靠手动复制,未免会太繁琐且容易出错。本文介绍使用Qmake工具编译完成后自动执行自定义脚本的方法。 编译完成后执行脚本/命令 使用QMAKE_POST_LINK变量可以指定一个或多个脚本/命令在编译完成(链接)后执行的操作。 比如: QMAKE_POST_LINK += cmd_line1 cmd_line2 编译完成前执行脚本/命令 使用QMAKE_PRE_LINK变量可以指定一个或多个脚本/命令在编译完成前(链接前
Qt君
2019/08/05
1.9K0
phpstorm swoole和CI代码自动补全
在你项目的External Libraries上右键->Configure PHP Include Path然后选择那个文件夹(swoole-ide-helper-en)就可以了
黄啊码
2020/05/29
8140
PHPstorm批量修改文件换行符CRLF为LF
背景 在win系统配置远程SSH解释器, 并同步文件后, 导致所有文件换行符全变为CRLF, Git Commit时发现Changelist有很多文件, 那么怎么全部换回来LF呢? 解决方案 (1)
码农编程进阶笔记
2022/02/17
1.1K0
PHPstorm批量修改文件换行符CRLF为LF
.Net Windows服务安装完成后自动启动
考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包。在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便。查阅了网上的一些资料,发现有一种方法是在安装完成事件里面调用命令行的方式启动服务,这种方式虽可行,但觉得不够完美。好了,下面来看看如何更好地做到服务自动启动。
跟着阿笨一起玩NET
2018/09/18
1.4K0
.Net Windows服务安装完成后自动启动
phpstorm中如何设置自动上传
本文为北溟有鱼QAQ原创文章,转载无需和我联系,但请注明来自北溟有鱼QAQ https://www.umdzz.cn
北溟有鱼QAQ
2019/12/19
8140
phpstorm中如何设置自动上传
详解PHP如何更好的利用PHPstorm的自动提示
写了一段时间的java之后,特别不习惯PHP本身的弱类型方式,在写代码的时候总觉得不怎么放心,特别本身PHP又是弱类型的语言,所以在编码的时候,很多时候是没有代码提示的。 一个一般例子
用户2323866
2021/06/30
5470
c++ const放置的位置
标准中int const a 与 const int a 是完全等价的。正因为如此,会有很多各种不同的风格,同样的还有“*是跟类型还是变量?”,比如char* p与 char *p,它们是等价的。
meteoric
2018/11/19
1.9K0
【react-dnd使用总结一】拖放完成后获取放置元素在drop容器中的相对位置
工具函数-根据元素的起始位置和最终位置,计算相对于某元素的位置 export interface IPosition { left: number; top: number; } /** * 根据元素的其实位置和最终位置,计算相对于某元素的位置 * @param initialPosition 拖动元素相对于屏幕左上角的起始位置(偏移量) * @param finalPosition 拖放完成后当前节点相对于屏幕左上角的位置 * @param containerEle 目标容器元素 * @
fastmock
2022/07/13
4.4K0
怎样插入图表?用图表功能可以插入不同的图表。
1、点击[插入] 2、点击[图表] 3、点击[折线图] 4、点击[确定]
裴来凡
2022/05/28
1.6K0
怎样插入图表?用图表功能可以插入不同的图表。
【说站】php之phpstorm自动代码补全的使用
2、点击PHP、右上角新增Live Template,点击下面的Define、勾选PHP
很酷的站长
2022/11/24
1K0
【说站】php之phpstorm自动代码补全的使用
xBIM 高级02 插入复制功能
  IFC 模型中的合并和删除实体是一个非常重要的任务,因为 IFC 不是一个分层结构。它是一个复杂的结构,具有潜在的循环关系,是一个双向导航。在单个实体上执行这些任务并不是问题(您可以将其想象为STEP21文件中的一行)。
张传宁IT讲堂
2019/09/17
6510
unity ugui的拖拽与放置
2、创建Panel(会自动创建Canvas 和EventSystem),将Panel中的Image组件删除,重命名为MainPanel。
酱紫安
2022/05/10
2.4K0
unity ugui的拖拽与放置
mySQL插入数据自动生成时间
mySQL插入数据自动生成时间 使用navcat for mysql工具创建数据库时,如果需要设置一个时间字段,并且在插入数据时让这个时间是自动生成。可以参考下面方法:
全栈程序员站长
2022/07/19
4.6K0
.Net实现Windows服务安装完成后自动启动的两种方法
考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包。在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便。 方法一:在安装完成事件里面调用命令行的方式启动服务 此操作之前要先设置下两个控件 设置serviceProcessInstaller1控件的Account属性为“LocalSystem” 设置serviceInstaller1控件的StartType属性为"Automatic" 在服务器上添加安装程序,在private void ProjectInstaller_Afte
hbbliyong
2018/03/06
1.6K0
.Net实现Windows服务安装完成后自动启动的两种方法
Laravel的Phpstorm插件
laravel-ide-helper 用于实现方便的代码提示功能,详细查看插件官网
无道
2019/11/13
1K0
Laravel的Phpstorm插件
C++ 流插入和流提取运算符的重载
假定我们要想把某个对象里的内容进行打印输出,那么我们可以重载 ostream 类的流插入 << 运算符。
小林coding
2020/03/31
1.1K0
C++ 流插入和流提取运算符的重载
Yarn管理放置规则
这是CDP中Yarn使用系列中的一篇,之前的文章请参考<使用YARN Web UI和CLI>、<CDP 中配置Yarn的安全性>、<CDP的Yarn资源调度与管理>、<CDP中Yarn管理队列>、<Yarn在全局级别配置调度程序属性>和<Yarn配置每个队列属性>。
大数据杂货铺
2021/09/15
2.2K0
Yarn管理放置规则
ASMM自动管理的功能[通俗易懂]
Automatic Shared Memory Management(ASMM)是ORACLE10g另外一个自动管理的功能。[@more@]
全栈程序员站长
2022/09/02
1.2K0
MyBatis Plus 批量数据插入功能,yyds!
最近 Review 小伙伴代码的时候,发现了一个小小的问题,小伙伴竟然在 for 循环中进行了 insert (插入)数据库的操作,这就会导致每次循环时都会进行连接、插入、断开连接的操作,从而导致一定的性能问题,简化后代码如下:
磊哥
2021/09/28
8.8K1

相似问题

PhpStorm中的TypeScript -无自动完成功能

117

PHPStorm自动完成数组键(动态插入)

22

PhpStorm -如何关闭自动卷曲大括号插入

14

如何阻止IntelliJ在自动完成后放置分号?

112

PhpStorm:标识符被自动引用,甚至变量

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文