cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Mengapa fasle di atas dan benar di bawah

Mengapa bahagian atas adalah fasle dan bahagian bawah adalah benar

var re = null ,result ,i;
for (i=0; i < 10; i++){
    re = new RegExp("cat", "g");
    re.test("catastrophe");
    console.log(re.test("catastrophe")); //false
    result = re.test("catastrophe");
    console.log(result);  //true
}
给我你的怀抱给我你的怀抱2824 hari yang lalu645

membalas semua(3)saya akan balas

  • 为情所困

    为情所困2017-05-18 11:03:39

    Petikan berikut adalah daripada http://www.w3school.com.cn/js...

    Harta JavaScript lastIndex
    objek RegExp JavaScript
    Definisi dan penggunaan
    Harta lastIndex digunakan untuk menentukan kedudukan permulaan perlawanan seterusnya.
    Syntax
    RegExpObject.lastIndex
    Description
    Atribut ini menyimpan integer, yang mengisytiharkan kedudukan aksara pertama selepas teks dipadankan terakhir.
    Hasil padanan terakhir ditemui oleh kaedah RegExp.exec() dan RegExp.test(), yang kedua-duanya menggunakan kedudukan yang ditunjuk oleh atribut lastIndex sebagai titik permulaan untuk pengambilan seterusnya. Dengan cara ini, anda boleh lelaran melalui semua teks yang sepadan dalam rentetan dengan memanggil dua kaedah ini berulang kali.
    Harta ini boleh dibaca dan ditulis. Ia boleh ditetapkan apabila carian seterusnya untuk rentetan sasaran bermula. Apabila kaedah exec() atau test() tidak lagi dapat mencari teks yang sepadan, mereka secara automatik menetapkan semula sifat lastIndex kepada 0.
    Petua dan Nota
    Penting: Objek RegExp yang tidak mempunyai bendera g dan tidak mewakili mod global tidak boleh menggunakan sifat lastIndex.
    Petua: Jika anda mula mendapatkan satu lagi rentetan baharu selepas berjaya memadankan rentetan tertentu, anda perlu menetapkan sifat ini kepada 0 secara manual.

    balas
    0
  • 高洛峰

    高洛峰2017-05-18 11:03:39

    balas
    0
  • PHPz

    PHPz2017-05-18 11:03:39

    Anda boleh lihat di sini, http://www.dewen.net.cn/q/468/
    Oleh kerana tanda padanan global g digunakan dalam ungkapan biasa, ungkapan biasa akan merekodkan kedudukan padanan yang berjaya lastIndex, dan teruskan padanan dari Kedudukan ini perlawanan ke belakang.
    Jadi bila matching untuk kali kedua, tak perlu tengok kucing sebelumnya, cabut g sahaja.

    balas
    0
  • Batalbalas