javascript - Saya tidak dapat mengetahui ungkapan biasa, tolong bantu saya
天蓬老师
天蓬老师 2017-05-19 10:31:59
0
2
415

Kod:

var match1 = new RegExp('\S*//weibo\.com/p/\S*');
var match2 = new RegExp('\S*//weibo\.com/p/\S+');

match1.test('http://weibo.com/p/12345/myfollow?relate=fans#place');//true
match2.test('http://weibo.com/p/12345/myfollow?relate=fans#place');//false

Saya agak keliru, kenapa match2 itu palsu, dan apa yang match1 match?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
阿神

Saudara, ada sesuatu yang tidak kena dengan ekspresi biasa anda Pertama sekali, terdapat dua bentuk pembinaan ekspresi biasa, satu seperti milik anda, dan satu lagi ialah /abc/g. /abc/g

看你的意思,你的正则表达式应该这样写:

var match1 = new RegExp('\S*//weibo\.com/p/\S*');
var match2 = new RegExp('\S*//weibo\.com/p/\S+');

你的少了反斜杠,转义失败

为什么?因为按照你的正则表达式,实际上:

var match1 = new RegExp('\S*//weibo\.com/p/\S*');
match1.source;
// "S*\/\/weibo.com\/p\/S*"

然后就是 *+

Bergantung pada maksud anda, ungkapan biasa anda hendaklah ditulis seperti ini:

var match1 = /\S*\/\/weibo\.com\/p\/\S/;
match1.source;
// "\S*\/\/weibo\.com\/p\/\S"
Milik anda tiada garis miring ke belakang, gagal melarikan diri🎜 🎜Kenapa? Kerana menurut ungkapan biasa anda, sebenarnya: 🎜 rrreee 🎜Kemudian terdapat perbezaan antara * dan +, jadi yang pertama adalah benar dan yang kedua adalah palsu. 🎜 🎜Adalah disyorkan untuk menggunakan dua garis miring semasa membina ungkapan biasa, supaya tidak perlu melarikan diri: 🎜 rrreee
黄舟

match1: s sepadan dengan 0 hingga 1 atau lebih ruang //Sebaik-baiknya untuk melarikan diri ini dan gunakan // supaya yang dipadankan ialah '/' Ini sepadan dengan '.', jika tiada garis serong ke belakang watak, dan s terakhir sepadan dengan 0 hingga 1 atau lebih ruang.
match2: Hanya yang terakhir berbeza, s+, satu atau lebih ruang, tetapi rentetan anda jelas tidak mempunyai ruang selepas p, jadi ia adalah palsu

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan