电子邮件地址正则表达式导致 UI5 中的语法错误

Email address regex causes syntax error in UI5

我的电子邮件正则表达式 (^\w+[\w-+\.]*\@\w+([-\.]\w+)*\.[a-zA-Z]{2,}$/) 在 XML 视图中不起作用,而数字正则表达式 (^[0-9]*$) 工作正常。

如果我做错了什么,你能帮帮我吗?

<Column>
  <m:Label text="Email ID"/>
  <template>
  <m:Input id="idEmailTabEmailId"
    valueLiveUpdate="true"
    value="{
      path: 'thatEmailAddress',
      mode: 'TwoWay',
      type: 'sap.ui.model.type.String',
      constraints: {
        minLength: 1,
        maxLength: 50,
        search: '^\w+[\w-+\.]*\@\w+([-\.]\w+)*\.[a-zA-Z]{2,}$'
      }
    }" />
  </template>
</Column>

如果 search 属性 具有字符串值而不是 RegExp 对象,则必须转义转义字符。 IE。 \ 而不是单个 \:

^<strong>\</strong>\w+[<strong>\</strong>\w-+<strong>\</strong>\.]*<strong>\</strong>\@<strong>\</strong>\w+([-<strong>\</strong>\.]\\ w+)*<strong>\</strong>\.[a-zA-Z]{2,}$

注意: 上述正则表达式 涵盖 RFC 5322 的所有情况。参见 https://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx/

此外,如果正则表达式是在 XML 文档中定义的(例如 XMLView),请记住也要转义这些特殊字符:

&quot; // "
&apos; // '
&lt;   // <
&gt;   // >
&amp;  // &