如何在Javascript中基于正则表达式进行条件匹配



我有一个映射,希望每次单击功能属性时,它都能做一些事情。然而,条件是我单击的区域必须与JS变量的对象属性的部分名称相匹配。

实际上,我们有:

功能

ProcessiJSON.forEach(function(arrayItem) {
if (e.target.feature.properties.NOME_COM.toUpperCase().match(/BONDENO/)) {
$('.lead').html('ciaoooooo' + arrayItem.ANNO_DI_AVVIO);
}
}

可变

var ProcessiJSON =
[
{
"": 0,
"ANNO_DI_AVVIO": 2010,
"PROCESSI_BONDENO": "5",
"PROCESSI_CAMPOSANTO": "",
"PROCESSI_CAVEZZO": "",
"PROCESSI_CENTO": "",
"PROCESSI_CONCORDIA_SULLA_SECCHIA": "",
"PROCESSI_CREVALCORE": "",
"PROCESSI_FINALE_EMILIA": "",
"PROCESSI_MEDOLLA": "",
"PROCESSI_MIRABELLO": "",
"PROCESSI_MIRANDOLA": "",
"PROCESSI_NOVI_DI_MODENA": "",
"PROCESSI_PIEVE_DI_CENTO": 1,
"PROCESSI_REGGIOLO": "",
"PROCESSI_SAN_FELICE_SUL_PANARO": ""} + many others

例如,如果我点击区域"BONDENO",我可以得到"PROCESSI_BONDENO"的编号。部分名称匹配,部分不匹配。我尝试了str.match,但到目前为止没有结果。我该怎么做?

谢谢

你的意思是这样的吗?

const ProcessiJSON = [
{
"": 0,
"ANNO_DI_AVVIO": 2010,
"PROCESSI_BONDENO": "5",
"PROCESSI_CAMPOSANTO": "",
"PROCESSI_CAVEZZO": "",
"PROCESSI_CENTO": "",
"PROCESSI_CONCORDIA_SULLA_SECCHIA": "",
"PROCESSI_CREVALCORE": "",
"PROCESSI_FINALE_EMILIA": "",
"PROCESSI_MEDOLLA": "",
"PROCESSI_MIRABELLO": "",
"PROCESSI_MIRANDOLA": "",
"PROCESSI_NOVI_DI_MODENA": "",
"PROCESSI_PIEVE_DI_CENTO": 1,
"PROCESSI_REGGIOLO": "",
"PROCESSI_SAN_FELICE_SUL_PANARO": "" 
}]
const findValues = (key) => {
key = key.toUpperCase();
return Object.keys(ProcessiJSON[0]).filter(item => item.indexOf(key) !=-1)
}  
let clicked = "Bondeno";
let match = findValues(clicked)
match.forEach(key => $(".lead").append('ciao fatto '+key+':',ProcessiJSON[0][key]+"<br/>") )
clicked = "Mira";
match = findValues(clicked)
match.forEach(key => $(".lead").append('ciao fatto '+key+':',ProcessiJSON[0][key]+"<br/>") )
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="lead"></div>

最新更新