abracadabraPDF › Forums › PDF – Général › Générer des nombres se trouvant dans une table commune › Répondre à : Générer des nombres se trouvant dans une table commune

Voici le script de touches personnalisé commenté :
// Si aucun évènement ne sera exécuté, c’est à dire en cours de frappe
if(!event.willCommit) {
// La valeur du champ en table ou chaque élément est un caractère
var aTester=event.value.split(“”);
// Dans cette table, avec “splice”, on place le caractère frappé
// entre la position de départ du curseur : event.selStart
// et le nombre de caractères sélectionnés : event.selEnd-event.selStart
// Si aucun caractère n’est sélectionné event.selEnd-event.selStart==0, on ajoute donc un caractère
aTester.splice(event.selStart, event.selEnd-event.selStart, event.change);
// testeChaine est la chaine de caractère à tester de la valeur du champ avec modification du caractère frappé
var testeChaine=aTester.join(“”);
// Expression régulière pour valider la frappe en cours
// Chaque nouveau caractère doit être validé sans tenir compte des caractères à venir
// D’où l’ajout de “?” qui signifie 0 ou 1
// cf. explication de l’expression régulière ci-dessous
var fractionRegEx=/^([1-9]\d*(\/([1-9]\d*)?)?)?$/;
// La frappe est validée si le teste de la chaine avec l’expression régulière est vrai
event.rc=fractionRegEx.test(testeChaine);
// Sinon “if(event.willCommit)” : Si un évènement sera exécuté
// Si on colle une valeur ou si on quitte le champ de quelque façon que ce soit
} else {
// Expression régulière pour valider l’entrée globale
var fractionRegEx=/^[1-9]\d*(\/[1-9]\d*)?$/;
// /^…$/ Teste la chaine de catactères du début jusqu’à la fin
// [1-9] Le premier caractère doit être un chiffre de 1 à 9
// \d* 0 ou plusieurs caractères numériques
// (\/…)? Une barre de fraction et la suite, le tout facultatif
// [1-9] Si il y a une barre de fraction, le premier caractère doit être un chiffre de 1 à 9
// \d* suivi de 0 ou plusieurs caractères numériques
// L’entrée est validée si le teste de la chaine avec l’expression régulière est vrai ou si le champ est vide
event.rc=event.value==”” || fractionRegEx.test(event.value);
}
J’espère que c’est un peu plus clair pour toi !
Ça ne fonctionne effectivement pas avec PDF-XChange Editor, mais je ne sais pas où trouver les scripts du champ…
@+
😎