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

时间:2016-06-28 07:30:48

标签: javascript html regex javascript-events

我的问题很简单,但我找不到真相 可以在Javascript onclick事件(HTML)中使用正则表达式吗?
例如,可以使用正则表达式显示具有不同身份但具有相同标签的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正则表达式:

onclick='$("#/^{{site.City}}./").show();'

我担心Javascript onclick事件中的正则表达式语法 可能吗?怎么可能这样做呢? 这个问题是我个人的知识。感谢

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

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

但如果{{site.City}}是一个链变量怎么办呢? 即使使用django dictionnary变量,onclick中循环的语法是什么? 这不是主题。这仍然是我的知识。 THX

2 个答案:

答案 0 :(得分:2)

据我所知,在jQuery选择器中不可能使用RegEx。但是,您可以将css选择器用于这些ID。这会将所有poll匹配为包含“stdin”的ID。

div

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

{{site.City}}

如果您希望div[id*="{{site.City}}"] onclick=`$('div[id*="{{site.City}}"]').show();` 开头,请使用:

id

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

答案 1 :(得分:1)

尝试使用类选择器:

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

编辑:AFAIK使用正则表达式作为jQuery的选择器是不可能的。最接近的方法是使用&#34; starts-with&#34; ([attr^=start])和&#34;结束&#34; ([attr$=end])选择器,在您的情况下将是:

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

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

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