Nano Hash - криптовалюты, майнинг, программирование

Регулярное выражение XPages validateConstraint ведет себя странно для Интернета

У меня есть поле ввода, email1, которое я хотел бы использовать с регулярными выражениями для проверки. Когда я загружаю xpage в Интернете, он добавляет обратную косую черту к существующей обратной косой черте (я думал, что должен был сделать это в коде). Он также заменяет не буквенно-цифровые символы тем, что я считаю юникодом.

<xp:td>
  <xp:inputText value="#{document1.email}" id="email1"
       required="true" styleClass="form-control">
    <xp:this.attrs>
      <xp:attr name="placeholder"
        value="Enter your email address">
      </xp:attr>
    </xp:this.attrs>
    <xp:this.validators>
      <xp:validateRequired
        message="Email is required">
      </xp:validateRequired>
      <xp:validateConstraint
        message="email not valid">
          <xp:this.regex><![CDATA[/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i]]></xp:this.regex>
      </xp:validateConstraint>
    </xp:this.validators>
  </xp:inputText>
</xp:td>

Это визуализированный html:

XSP.addOnLoad(function() {
XSP.attachValidator("view:_id1:_id2:email1",new XSP.RequiredValidator("Email is required"),null,new XSP.RegExpValidator("/^\u0028[\\w-]+\u0028?:\\.[\\w-]+\u0029*\u0029@\u0028\u0028?:[\\w-]+\\.\u0029*\\w[\\w-]{0,66}\u0029\\.\u0028[a-z]{2,6}\u0028?:\\.[a-z]{2}\u0029?\u0029$/i","email not valid"));

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

<xp:this.regex><![CDATA[#{javascript:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i}]]></xp:this.regex>

Может ли кто-нибудь увидеть, что я делаю неправильно, и указать мне правильное направление.

30.06.2015

Ответы:


1

Удалите начальные "/" и "/i" в конце регулярного выражения. Тогда это сработает.

<xp:this.regex><![CDATA[^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$]]></xp:this.regex>

Ведущий «/» уже включен внутри, и, к сожалению, модификаторы, такие как «/i» (соответствие без учета регистра), похоже, не работают.

Не беспокойтесь о двойных обратных косых чертах и ​​символах Юникода в отображаемом коде JavaScript. Они будут интерпретированы JavaScript как одна обратная косая черта и исходные символы.

30.06.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..