'<img abc 123 width="168" height="300"'.match(/(?=(width="))168/)
Saya menjangkakan untuk mengekstrak 123 yang terletak di width="123" daripada rentetan
Biar saya beritahu anda apa yang saya boleh fikirkan dahulu. Tetapi operasi ini terasa pelik. Adakah terdapat cara yang menarik
Gunakan ganti dan dapatkannya dalam panggilan balik
'<img abc 123 width="168" height="300"'.replace(/width="\d+"/,function(a){console.log(a)})
Atau suka @ars_qu
'<img abc 123 width="168" height="300"'.match(/width="\d+"/)[0].match(/\d+/)[0]
js mempunyai sokongan yang lemah untuk penegasan, hanya gunakan kumpulan yang sepadan secara langsung:
JS tidak menyokong reverse prefetch
Ia kini menyokong carian hadapan untuk penegasan lebar sifar, iaitu, mencari teks yang berakhir dengan perkataan yang ditentukan (atau syarat lain). --JS kini menyokong;
Keperluan dalam soalan anda adalah untuk mencari teks yang didahului oleh perkataan yang ditentukan (atau syarat lain). --JS pada masa ini tidak disokong.
P.S.: Walaupun ia disokong, tulisan anda salah! Jika anda ingin mencari nombor selepas lebar, anda perlu menggunakan Reverse pre-lookup Cara yang betul untuk menulisnya (dalam C# atau PHP) ialah
/(? <= lebar)d+/. Perhatikan tanda tambahan kurang daripada.
forward lookup/(?<=width)d+/
。 注意多了一个小于号。如果你想找width前面的数字,比如字符串是这样的"168width",这是用到的是正向预查,写法为
/d+(?=width)/
Jika anda ingin mencari nombor di hadapan lebar, contohnya, rentetannya adalah seperti "168width", ini ialah, ditulis sebagai
/d+( ?= lebar)/
.Amalan Standard - Kumpulan Tangkap
#🎜🎜#Menggunakan tangkapan biasa adalah kaedah terbaik dalam senario anda. #🎜🎜#Bolehkah anda hanya menggunakan lebar=".*?" dan kemudian padankan nombor?
js nampaknya tidak menyokong beberapa ungkapan biasa, seperti penegasan lebar sifar....