J'ai cet objet "FILTER_DATE": "LAST_MONTH", "FROM_DATE": "2/9/2020", "TO_DATE": "3/9/2020" et j'ai besoin d'extraire le FROM_DATE valeur 09/02/2020 . J'essaie d'utiliser replace, pour tout remplacer avant et après la date de début par une chaîne vide, mais je ne sais pas comment obtenir les deux côtés de la valeur.
pour le moment je peux tout supprimer jusqu'à la valeur de la date avec ceci ... /.*FROM_DATE":"/ mais comment puis-je maintenant supprimer la dernière partie de l'objet?
Merci
3 Réponses :
Dans un deuxième temps, vous pourriez supprimer /",.*/ , mais cela me semble trop heuristique.
Vous feriez mieux de simplement capturer le premier groupe de capture de l'expression régulière suivante :
let str = '"FILTER_DATE":"LAST_MONTH", "FROM_DATE":"2/9/2020", "TO_DATE":"3/9/2020"'; let pattern = /FROM_DATE":"([0-9][0-9]?\/[0-9][0-9]?\/[0-9][0-9][0-9][0-9])"/ alert(str.match(pattern)[1]);
/FROM_DATE":"([0-9][0-9]?\/[0-9][0-9]?\/[0-9][0-9][0-9][0-9])"/
Si vous avez besoin de le faire avec replace, utilisez simplement:
const input = '"FILTER_DATE":"LAST_MONTH", "FROM_DATE":"2/9/2020", "TO_DATE":"3/9/2020"'; const date = input.replace(/^.*"FROM_DATE":"([\d/]+)".*$/, '$1');
Vous pouvez maintenant utiliser date avec juste la date dedans ... p >
Merci, c'est le plus proche que je recherchais.
Votre exemple de chaîne ressemble très à JSON. À tel point que vous pouvez simplement l'envelopper entre accolades, l'analyser en tant qu'objet et obtenir la valeur de FROM_DATE.
EG:
function almostJsonStringToObject(str) {
return JSON.parse('{' + str + '}');
}
var str = '"FILTER_DATE":"LAST_MONTH", "FROM_DATE":"2/9/2020", "TO_DATE":"3/9/2020"';
var obj = almostJsonStringToObject(str);
var fromdate = obj.FROM_DATE;
console.log(fromdate);
Voulez-vous dire un objet ou une chaîne?
var x = JSON.parse ("{" + your_string + "}"). FROM_DATEest un moyen d'obtenir cela et les autres valeurs, soulève la question de votre entrée est une chaîne json dans le premier lieu?excuses, c'est une chaîne dans ce cas /