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

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

我的问题很简单,但我找不到真相。 可以在 Javascript onclick 事件 (HTML) 中使用正则表达式吗?
例如,是否可以使用正则表达式显示具有不同 id 但相同标签的 div :

div s:

<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 事件中的正则表达式语法。
可能吗?以及如何做到这一点?
这个问题是我个人的知识。

编辑:
好的,我现在知道我可以使用了:

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

但是{{site.City}}是链变量怎么办?
即使使用 django 字典变量,onclick 中循环的语法是什么?
这不是主题。它仍然是我的知识。

尝试使用 class 选择器:

<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>

编辑: 据我所知,jQuery 无法使用正则表达式作为选择器。最接近的方法是使用 "starts-with" ([attr^=start]) 和 "ends-with" ([attr$=end]) 选择器,在您的情况下是:

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

编辑 2: 如果您 真的 需要根据复杂模式匹配元素,那么您可能需要分两步完成:

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

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

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

这将使您的 onClick 属性看起来像这样(注意不同的引号):

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

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

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

有关选择器的更多详细信息,请参见 MDN page