Tajuk ditulis semula sebagai: "Ungkapan biasa yang berfungsi apabila menggunakan bendera u, tetapi tidak apabila menggunakan bendera v"
P粉684720851
P粉684720851 2023-08-25 15:47:43
0
1
550
<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粉684720851
P粉684720851

membalas semua(1)
P粉116631591

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"))
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan