Реагируйте на буквенно-цифровую проблему проверки - PullRequest
0 голосов
/ 10 января 2019

export default (value = "") => {
  let error = null;
  const stripped = value.replace(/^[0-9a-zA-Z]*$/, "");

  if (stripped.length !== value.length) {
    error = "Input Contains Bad Characters";
  }

  return { error, value };
};

// This below code for varying the formats

import validator from "../../validators/alpha-numeric.js";

describe("Alphanumeric Only Validator For Input Validation", () => {
  test("Only Characters Passed", () => {
    expect(validator("Abcd")).toMatchObject({
      error: null,
      value: "Abcd"
    });
  });

  test("Alphanumeric Characters With Space", () => {
    expect(validator("Abc d")).toMatchObject({
      error: "Input Contains Bad Characters",
      value: "Abc d"
    });
  });

  test("Alphanumeric Characters With Numbers", () => {
    expect(validator("Ab123d")).toMatchObject({
      error: null,
      value: "Ab123D"
    });
  });

  test("Alphanumeric Characters With Special Characters", () => {
    expect(validator("Abcd@")).toMatchObject({
      error: "Input Contains Bad Characters",
      value: "Abcd@"
    });
  });
});

Это полный код, который я использую в React, пожалуйста, покажите мне идеальный результат, как я могу проверить буквенно-цифровые символы.

Это требование, даже описанное мною нижеприведенным кодом, предназначено для модульного тестирования, но если я запускаю «модульный тест пряжи», я получаю ошибку.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Привет всем, у меня есть решение этого вопроса, пожалуйста, найдите буквенно-цифровой шаблон /\w/. Этот шаблон работает для меня, также, пожалуйста, найдите шаги для создания регулярных выражений ... введите описание ссылки здесь

0 голосов
/ 10 января 2019

Это:

const stripped = value.replace(/^[0-9a-zA-Z]*$/, "");

Заменяет эти символы, только если они являются единственными в строке, из-за якорей (^ и $).

Если вы хотите проверить, что value содержит только эти символы, нет необходимости создавать другую строку:

if (/[^0-9a-zA-Z]/.test(value)) {
    // It has an invalid character
}

Это работает, потому что регулярное выражение будет соответствовать любому символу не в 0-9, a-z или A-Z. Если он не совпадает, нет недопустимых символов.

Пример:

function test(value) {
    if (/[^0-9a-zA-Z]/.test(value)) {
        console.log(JSON.stringify(value), "=> invalid");
    } else {
        console.log(JSON.stringify(value), "=> valid");
    }
}
test("");      // Valid
test("0a");    // Valid
test("Ab123d") // Valid
test("0a-");   // Invalid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...