Как делать Регулярное Выражение, которое не позволяло бы место в мишени в начало?

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

http://www.regexr.com/

6
задан 21.01.2017, 08:49
0 ответов

Три выбора:

1. Совпадать с местом в мишени в incio, но отрицать весь результат:

if ( !/^\s/.test(texto) ) {
    ^^^
    el signo de admiración niega al resultado del método .test()
  • ^ - Совпади с положением в начало текста.
  • \s - (В строчной букве) совпади с 1 типом места в мишени, а именно с [ \t\n\r\f].

Не запутываться, знак восхищения - логический оператор not языка сценариев JavaScript, это не часть регулярного выражения.


2. Заставлять совпадать с характером, который не был бы местом в мишени:

/^\S/
  • ^ - Совпади с положением в начало текста.
  • \S - (В прописной букве) совпади с 1 характером, который не \sа именно с [^ \t\n\r\f].

Она против: он не принимает пустые тексты.


3. Использовать отрицательную инспекцию (negative lookahead):

/^(?!\s)/
  • ^ - Совпади с положением в начало текста.
  • (?!..) - Это отрицательная инспекция (negative lookahead), а именно, что, не тратя символов, совпадает, только если не встречается главный файл, который внутри.
    • \s - Совпади с местом в мишени.

Или же, весь этот regex может быть интерпретирован как: совпади с начальным положением текста, если она не продолжена местом в мишени



Код (со структурами, повторенными, чтобы это упрощать):

const regex1 = /^\s/;
const regex2 = /^\S/;
const regex3 = /^(?!\s)/;

let input1 = document.getElementById("inp1");
let input2 = document.getElementById("inp2");
let input3 = document.getElementById("inp3");
let resultado1 = document.getElementById("res1");
let resultado2 = document.getElementById("res2");
let resultado3 = document.getElementById("res3");

//cuando cambia el texto del input
input1.addEventListener("input", function() {
    //ver si NO coincide el regex /^\s/
    if (!regex1.test(input1.value)) {
        resultado1.innerText = "(no coincide) -> Verdadero :-)";
    } else {
        resultado1.innerText = "(coincide) -> ¡Falso!";
    }
});

input2.addEventListener("input", function() {
    //ver si coincide el regex /^\S/
    if (regex2.test(input2.value)) {
        resultado2.innerText = "Coincide :-)";
    } else {
        resultado2.innerText = "¡No coincide!";
    }
});

input3.addEventListener("input", function() {
    //ver si coincide el regex /^(?!\s)/
    if (regex3.test(input3.value)) {
        resultado3.innerText = "Coincide :-)";
    } else {
        resultado3.innerText = "¡No coincide!";
    }
});
<p>Prueba negando a <code>/^\s/</code>:</p>
<input type="text" id="inp1">
<code id="res1" r></code>
<p>Prueba de <code>/^\S/</code>:</p>
<input type="text" id="inp2">
<code id="res2"></code>
<p>Prueba de <code>/^(?!\s)/</code>:</p>
<input type="text" id="inp3">
<code id="res3"></code>
6
ответ дан 03.12.2019, 17:35
  • 1
    Большое спасибо сумасшедший!, мне служила многим помощь, привет и позаботьтесь. –  04.02.2017, 05:55

Теги

Похожие вопросы