expresion regular solo letras y espacios html

publicado por: Anonymous

Como puedo contruir una expresión regular que solo contenga espacios y letras ASCII normales quiero decir

_x000D_

_x000D_

<form action="resultado.php" method="post">_x000D_
            <select name="cifrado">_x000D_
    _x000D_
                <option value="cifrar">Cifrar</option>_x000D_
    _x000D_
                <option value="descifrar">Descifrar</option>_x000D_
    _x000D_
            </select>   _x000D_
    _x000D_
    </select><br/>_x000D_
               <!–  Introducimos el texto a cifrar/descrifrar ->_x000D_
                _x000D_
                <label for="texto">Texto a descrifrar o descifrar</label>_x000D_
                <input type="text" name="texto" pattern="[A-Za-z ]><br />_x000D_
    _x000D_
                <label for="desplazamiento">desplazamiento</label>_x000D_
                <input type="number" name="desplazamiento"><br />_x000D_
    _x000D_
    _x000D_
                <!–  Borrar los valores ->_x000D_
                <label for="Borrar">¿Quieres resetear?</label>    _x000D_
                <input type="reset" value="Borrar">_x000D_
    _x000D_
                <!–  Recoger los datos ->_x000D_
                <label for="Enviar">Enviar</label>_x000D_
                <input type="submit" name="Enviar">_x000D_
    _x000D_
            </form>

_x000D_

_x000D_

_x000D_

pongo este pattern pero no funciona

pattern="[A-Za-z]{2-254}"

resultado.php

    <?php
function encrypt($str, $offset) {
    $encrypted_text = "";
    $offset = $offset % 26;
    if($offset < 0) {
        $offset += 26;
    }
    $i = 0;
    // mientras la longitud sea menos de $str
    while($i < strlen($str)) {
        //Convierte str a mayusculas
        $c = strtoupper($str{$i}); 
        if(($c >= "A") && ($c <= 'Z')) {
            //devuelve el valor ASCII de un caracter
            if((ord($c) + $offset) > ord("Z")) {
                //ASCII y devuelve un caracter especifico
                $encrypted_text .= chr(ord($c) + $offset - 26);
        } else {
            $encrypted_text .= chr(ord($c) + $offset);
        }
      } else {
          $encrypted_text .= " ";
      }
      $i++;
    }
    return $encrypted_text;
}
function decrypt($str, $offset) {
    $decrypted_text = "";
    $offset = $offset % 26;
    if($offset < 0) {
        $offset += 26;
    }
    $i = 0;
    while($i < strlen($str)) {
        $c = strtoupper($str{$i}); 
        if(($c >= "A") && ($c <= 'Z')) {
            if((ord($c) - $offset) < ord("A")) {
                $decrypted_text .= chr(ord($c) - $offset + 26);
        } else {
            $decrypted_text .= chr(ord($c) - $offset);
        }
      } else {
          $decrypted_text .= " ";
      }
      $i++;
    }
    return $decrypted_text;
}

//sample text

if ($_POST["texto"] != ""&& $_POST["cifrado"] != ""
    && $_POST["desplazamiento"] != "" ) {

        $text = $_POST["texto"];
        $offset = $_POST["desplazamiento"] ;
        $enc = $_POST["cifrado"];
    if ($enc == "cifrar") {

        $result=encrypt($text, $offset);

    } elseif ($_POST["cifrado"] == "descifrar") {

        $result=decrypt($text, $offset);
    }

    echo $result;

    print ('<br /><a href="cesar.php">Volver</a> ');

    }else{
        print ("Introduzca un texto válido");

        print ('<br /><a href="cesar.php">Volver</a>');
    } 







?>

solución

Puedes hacerlo así:

 pattern="[a-zA-Z ]{2,254}"

Te permitirá ingresar letras de la hasta la z, un con un mínimo de 2 caracteres y máximo 254

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *