可以在Javascript的onclick事件(HTML)中使用正则表达式

It is possible to use regex in Javascript onclick event (HTML)?

本文关键字:HTML 正则表达式 事件 Javascript onclick      更新时间:2023-09-26

我的问题很简单,但我找不到真相。是否可以在Javascript onclick事件(HTML)中使用正则表达式?
例如,是否可以使用regex:

显示具有不同id但具有相同标签的div

div年代:

<div class='zone' id='{{site.City}}'>
<div class='zone' id='{{site.City}}{{immo.CodeImmo}}'>
<div class='zone' id='{{site.City}}{{sth else}}'>
javascript regex:
onclick='$("#/^{{site.City}}./").show();'

我担心在Javascript onclick事件中的regex语法。
这可能吗?怎么可能做到呢?
这是一个关于我个人的问题。

编辑:
现在我知道我可以使用:

onclick=`$('div[id*="{{site.City}}"]').show();`

但我该怎么做,如果{{site.City}}是一个链式变量?
什么是在onclick循环的语法,甚至与django字典变量?
这不是主题。

据我所知,在jQuery选择器中不可能使用RegEx。但是,您可以对这些id使用css选择器。这将匹配id包含" {{site.City}} "的所有div

div[id*="{{site.City}}"]
这将使你的onClick属性看起来像这样(注意不同的引号):
onclick=`$('div[id*="{{site.City}}"]').show();`

如果您希望id s以{{site.City}}开头,请使用:

div[id^="{{site.City}}"]

关于选择器的更多细节可以在MDN页面找到

尝试使用类选择器:

<div class='zone site-city' id='{{site.City}}'>
<div class='zone site-city' id='{{site.City}}{{immo.CodeImmo}}'>
<div class='zone site-city' id='{{site.City}}{{sth else}}'>
<a onclick='$(".site-city").show();'>Some anchor</a>

EDIT: AFAIK这是不可能使用jQuery正则表达式作为选择器。最接近的方法是使用" begin -with" ([attr^=start])和"end -with" ([attr$=end])选择器,在您的情况下是:

onclick='$("[id^='{{site.City}}']").show();'

EDIT 2:如果真的需要基于复杂的模式匹配元素,那么您可能需要分两步完成:

$("div.zone").filter(function () {
    return /your regex here/.test($(this).attr('id'));
}).show();