Expresión регулярный que empiece подставляют mayúscula y acabe en punto

Estoy empezando подставляют expresiones постоянных клиентов y никакой sé cómo сопоставитель ésta. Se trata de hacer un patrón en JavaScript que empiece en mayúscula y acabe en punto. Este es el código que tengo hecho por el momento:

function validarFrase() {
    var frase = document.getElementById("frase").value; 

    var reg=new RegExp("^[A-Z]+[.]$"); 

    if (frase.match(reg)){
        alert ("El formato es el correcto");
    } else {
        alert ("El formato es incorrecto"); 
    }

}
Escriba su frase<input type="text" id ="frase"/>
<button onclick="validarFrase()">Verificar</button>

El caso es que meto un nombre, por ejemplo, "Альпака". que cumpla los requisitos de la expresión регулярный y не я соответствие hace, porque la expresión регулярный está mal, pero никакой sé Комо hacerla bien. ¿Alguna ayuda? Gracias.

3
задан 20.12.2019, 16:42
3 ответа

Пробуй с этим выражением:

/^[A-Z][a-z]+[.]$/

Эта показывает следующее:

  1. ^[A-Z]: что comienze с 1 буквой в прописной букве
  2. [a-z]+: которая содержала бы 1 или более буквы в строчной букве.
  3. [.]$: у которых в конце текста был бы характер точка (.).

Примеров:

console.log("Hola.".match(/^[A-Z][a-z]+[.]$/)) // da match
console.log("HOla.".match(/^[A-Z][a-z]+[.]$/)); // no da match
console.log("HOLA.".match(/^[A-Z][a-z]+[.]$/)); // no da match

В случае, если ты захочешь знать, потому что твое выражение не удается, - благодаря тому, что он надеется, что у начала string есть 1 или более буквы в прописной букве, и что потом у него есть буквальный характер ..

Это показывает, что текст ПРИВЕТ. даст матч в то время как Привет. Не.

В escencia:

  1. ^[A-Z]+: что comienze с 1 или более заглавные буквы
  2. [.]$: у которых в конце текста была бы точка (.).
3
ответ дан 21.12.2019, 12:12
  • 1
    Té cnicamente не упомянули о том, что второй и следующие символы должны были быть буквами minú sculas, ни, что должны были быть один или má в. Habrí в который знать, если цепи как " PA." или " P." они vá lidas, так как оба начинаются в mayú scula и они заканчиваются точно. – ordago 20.12.2019, 14:35
  • 2
    я не понимаю, потому что не дают матч три., если они выполняют, что начинаются в прописной букве и заканчиваются точно... – gbianchi♦ 20.12.2019, 16:46

Если он, должно быть, начинается с прописной буквой, и заканчиваться точно и совсем то, что находится между ними, может быть строчной буквой или прописной буквой или числом, ты можешь использовать это регулярное выражение.

^[A-Z].*[.]$

Например:

"Paco."  ---->  # Emparejará. 
"Padsdo." ----> # Emparejará.
"PASDFDcvcv." ----> # Emparejará.
"Wdfdfdfd123g." ----> # Emparejará.

, Если ты хочешь, чтобы он только пошел буквы, между прописными буквами и строчными буквами, ты можешь использовать ее следующие регулярное выражение.

^[A-Z][A-z]+[.]$

, Где тебя соединят парами типы этого класса.

"Paco."    
"PAco."
"PACO."
"PasdsdsdDcoc."
"RdcdfgfDDDDDDc."   

Надеялся, что он смог помогать тебе.

4
ответ дан 21.12.2019, 12:12
  • 1
    +1 :) я reemplazarí в [.] из-за \., так как ú ltima он má s fá cil чтения (не sabí в до recié n, что точка внутри группы не нуждается в том, чтобы быть убегите) – g3rv4 20.12.2019, 17:07

Я предлагаю выбор, не используя регулярных выражений, это даст ему меньше комплексность твоему коду

function validarFrase(){
  let str = document.getElementById("frase").value; 
  let formatoCorrecto = str.charAt(0).toUpperCase()  == str.charAt(0)&& str.slice(-1) == ".";
  console.info("formato correcto?", formatoCorrecto)

}
Escriba su frase<input type="text" id ="frase"/>
<button onclick="validarFrase()">Verificar</button>
3
ответ дан 21.12.2019, 12:12
  • 1
    Если это собиралось составлять часть aplicació n на самом деле, это правильный ответ. Если возможно делать без regex простой формы, давайте не используем regex :) – g3rv4 20.12.2019, 17:04