JS(jQuery)-如果条件-任意数字
JS (jQuery) - If condition - any digit
我正在努力实现以下目标:我有一个元素,所有元素都可以被分配类(有些元素有"a1",有些元素"a2","a3"…或者它们可以没有类)。我需要检查(在条件中)我是在处理任何"a*"-类元素,还是在处理非"a*"-类元素。显而易见的方式是:
if (element.prop('class')=='a1' || element.prop('class')=='a2' ||...){ // some action}
但是由于不同的"a"类的数量是动态的,并且可以达到很高的数量,我想测试一下类似的东西
if (element.prop('class')=='a'd'){ // some action}
或将/d替换为[0-9]。A对这个正则表达式做了一些研究,但没有发现任何合适的,也不起作用。对于我的问题,有没有更好的Regex方式(或类似方式)或任何替代方案?
感谢
JavaScript有正则表达式文字,并且您希望使用test
方法:
if (/a'd/.test(element.attr('class'))) {
// some action
}
附带说明:class
是HTML属性,而不是节点属性(使用attr
而不是prop
)
我建议使用以下正则表达式:
/(^|'s)a'd/
因为它在字符串的开头或空格后面查找a
,所以在元素指定了多个类(如class="b2 a1"
),但不接受在a
之前有其他字母的类名(如class="ha1"
)的情况下,它会起作用。
因此:
if (/(^|'s)a'd/.test(element.prop('class')) {
请注意,您不会像在代码中那样使用==
对正则表达式进行测试。您使用类似.test()
的regex方法。
regex本身被创建为regex文本,将表达式放在两个斜杠之间,如下所示:
/(^|'s)a'd/
或者作为传递给new RegExp()
的字符串,例如:
new RegExp('(^|''s)a''d')
但是用字符串做这件事更麻烦,因为你必须转义字符串中的任何反斜杠(注意,在我的例子中它们是双斜杠?),所以我只会在用变量构建正则表达式时这样做,比如当它需要包括用户输入的数据时。
if ( element.prop('class')[0]=='a' && !isNaN(element.prop('class').substring(1)) )
我想,可能比任何正则表达式都快
相关文章:
- 通过js在新选项卡中有条件地打开url
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- jQuery-有条件地附加HTML
- 根据某些条件在视图之间切换
- 如何做到这一点,使代码在不传递条件后执行函数
- 有条件更新d3.js力图中节点的最佳方法
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- javascript中的布尔条件
- Woocommerce产品选项有条件
- 基于两个条件退出While循环
- 有条件地在选项标记中应用布尔属性
- 使用javascript以HTML形式验证条件
- 聚合物0.5.5:核心列表中的条件模板和/或模板动态参考
- javascript对象操作:根据指定条件选择属性
- 这个条件语句的逻辑有问题
- 如何在条件中实现任意数字
- 有没有一种更简洁的方法来设置一个条件语句,以便为变量的任意值集执行
- JS(jQuery)-如果条件-任意数字
- 正则表达式:匹配两个条件中的任意一个
- Javascript条件正在以任意方式执行