Rumah  >  Soal Jawab  >  teks badan

Tajuk ditulis semula sebagai: "Ungkapan biasa yang berfungsi apabila menggunakan bendera u, tetapi tidak apabila menggunakan bendera v"

<p>Saya menemui amaran konsol berikut dalam corak regex ini: </p> <pre class="brush:php;toolbar:false;">^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA- Z0-9]+$</pre> <blockquote> <p>Nilai atribut corak <kod>^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+$< ;/kod> sah menggunakan bendera <kod>u</kod> RegExp, tetapi tidak dengan bendera <kod>v</kod> -zA-Z0-9+_.-]+@[a-zA-Z0-9]+</kod>.<kod>[a-zA-Z0-9]+$/v:</ kod> Terdapat aksara tidak sah dalam kelas aksara. </p> </blockquote> <p>Saya tidak dapat melihat cara mencipta corak regex yang sah untuk menyelesaikan amaran ini. Bolehkah sesiapa menerangkan ralat dan cara membetulkannya? </p> <p>Cuba melihat dokumentasi tetapi tidak dapat mencari cara untuk menjadikannya berfungsi dengan bendera <kod>v</code> </p>
P粉684720851P粉684720851421 hari yang lalu489

membalas semua(1)saya akan balas

  • P粉116631591

    P粉1166315912023-08-26 13:50:46

    Masalahnya ialah v标志对转义规则施加了更多限制。由于它允许字符类的减法和交集,因此字符类末尾的字面量- yang baru diperkenalkan tidak boleh terlepas.

    Jadi jika anda menggunakan bendera u标志,就没有这样的限制,而使用v, terdapat sekatan sedemikian. Lihat.

    console.log(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/u.test("myname@somesite.com"))
    console.log(/^[a-zA-Z0-9+_.\-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v.test("myname@somesite.com"))

    balas
    0
  • Batalbalas