Koordinatenüberprüfung
<p>Ich habe ein Textfeld für Koordinaten und möchte es mit vee-validate (3.x) und Vue 2 validieren. Ich habe zwei verschiedene Methoden ausprobiert, ohne Erfolg. Das Format der Koordinaten sollte „Integer oder Float, Integer oder Float“ sein, also „Breitengrad, Längengrad“ (nur ein Komma, mehrere Kommas sollten als ungültig markiert werden). </p><p>Dies ist das Textfeld: </p><p><br /></p>
<pre class="brush:html;toolbar:false;"><ValidationProvider v-slot="{errors }" Rules="coordinates_validation">
<v-text-field
:label="$t('stations.position')"
:value="positionValue"
:error-messages="errors"
@input="$emit('update:station', { ...station, ...getLatLong($event) })"
@keypress="justNumber"
/>
</ValidationProvider>
</pre>
<p>Hier sind zwei Dinge, die ich erfolglos versucht habe: </p>
<pre class="brush:js;toolbar:false;">extend("coordinates_validation", {
validieren: (Wert) =>
const Koordinaten = value.split(",");
if (Koordinaten.Länge !== 2) {
falsch zurückgeben;
}
const trimmedCoordinates = Koordinaten.map((coord) => coord.trim());
const isValidCoordinate = (coord) =>
return !Number.isNaN(parseFloat(coord)) &&
};
zurückkehren (
trimmedCoordinates.every(isValidCoordinate) &&
!trimmedCoordinates.some((coord) => coord === "")
);
},
Nachricht: i18n.tc("validations.coordinates_incorrect_format"),
});
</pre>
<pre class="brush:js;toolbar:false;">extend('coordinates_validation', {
validieren: (Wert) =>
const regex = /^d+(.d+)?,s*d+(.d+)?$/;
return regex.test(value);
},
Nachricht: i18n.tc('validations.coordinates_incorrect_format'),
});
</pre>
<p>Weiß jemand, wie man das beheben kann? </p>