Rumah  >  Artikel  >  hujung hadapan web  >  Kongsi kes praktikal dan teknik lanjutan: Aplikasi lanjutan ungkapan biasa JavaScript

Kongsi kes praktikal dan teknik lanjutan: Aplikasi lanjutan ungkapan biasa JavaScript

WBOY
WBOYasal
2024-01-05 20:20:481073semak imbas

Kongsi kes praktikal dan teknik lanjutan: Aplikasi lanjutan ungkapan biasa JavaScript

Berkongsi kemahiran aplikasi lanjutan dan kes praktikal ungkapan biasa JavaScript

Pengenalan:
Ekspresi biasa ialah alat pemprosesan teks yang berkuasa yang digunakan secara meluas dalam pelbagai bahasa pengaturcaraan. Dalam JavaScript, ungkapan biasa juga memainkan peranan penting dan digunakan secara meluas dalam pembangunan harian. Artikel ini akan memperkenalkan secara terperinci kemahiran aplikasi lanjutan ungkapan biasa JavaScript dan berkongsi beberapa kes praktikal untuk membantu pembaca menguasai teknologi ini dengan lebih baik dan mengaplikasikannya dalam pembangunan sebenar.

1. Semakan konsep asas:
Sebelum mempelajari ungkapan biasa JavaScript secara mendalam, kita harus menyemak konsep asas ungkapan biasa. Ungkapan biasa ialah corak yang digunakan untuk memadankan, mencari dan menggantikan rentetan. Ia terdiri daripada pelbagai aksara dan aksara meta yang boleh digunakan untuk menerangkan corak teks. Dalam JavaScript, kita boleh menggunakan objek RegExp untuk mencipta dan memanipulasi ungkapan biasa.

2. Kemahiran aplikasi lanjutan:

  1. Pengubah suai ungkapan biasa:
    Dalam ungkapan biasa JavaScript, pengubahsuai ialah pilihan untuk mengubah suai atau mengkonfigurasi ungkapan biasa. Pengubah suai biasa termasuk i, g, m dan s, dsb., yang masing-masing menunjukkan mengabaikan huruf besar kecil, padanan global, padanan berbilang baris dan padanan titik mana-mana aksara (termasuk aksara baris baharu), dsb.

Contoh:

// 忽略大小写匹配
let regex = /hello/i;
console.log(regex.test("Hello")); // true

// 全局匹配
let regex2 = /hello/g;
console.log("hello world".replace(regex2, "hi")); // hi world

// 多行匹配
let regex3 = /^hello/m;
console.log(regex3.test("hello
world")); // true

// 匹配换行符
let regex4 = /hello.world/s;
console.log(regex4.test("hello
world")); // true
  1. Padanan pembatas dan sempadan:
    Dalam ungkapan biasa, pembatas digunakan untuk memadankan sekumpulan aksara tertutup termasuk kurungan segi empat sama ([]), kurungan bulat (( )) dan kurungan kerinting. {}). Sempadan digunakan untuk mengehadkan permulaan atau penghujung rentetan.

Contoh:

// 匹配数字
let regex = /[0-9]/;
console.log(regex.test("123")); // true

// 匹配括号内的内容
let regex2 = /((.*?))/;
let match = "Hello (world)".match(regex2);
console.log(match[1]); // world

// 匹配单词边界
let regex3 = /hello/;
console.log(regex3.test("say hello")); // true
  1. Pengumpulan bukan tangkapan:
    Dalam ungkapan biasa, menggunakan pengumpulan tangkapan boleh menyimpan hasil yang dipadankan untuk kegunaan seterusnya. Walau bagaimanapun, dalam beberapa kes, kami mungkin hanya perlu memadankan tetapi tidak perlu mengekalkan hasilnya, dalam hal ini kumpulan bukan tangkap boleh digunakan.

Contoh:

// 捕获分组
let regex = /(d+)s+s(d+)s=/;
let match = "1 + 2 =".match(regex);
console.log(match[1]); // 1
console.log(match[2]); // 2

// 非捕获分组
let regex2 = /(?:d+)s+s(?:d+)s=/;
let match2 = "1 + 2 =".match(regex2);
console.log(match2); // null
  1. Cari sebelum dan selepas:
    Cari sebelum dan selepas dalam ungkapan biasa boleh memadankan kandungan sebelum dan selepas rentetan berdasarkan syarat tertentu. Carian hadapan menggunakan pembatas positif positif (?=) dan pembatas negatif hadapan (?!), dan carian pasca menggunakan pembatas positif songsang (?

Contoh:

// 前查找
let regex = /hello(?= world)/;
console.log(regex.test("hello")); // false
console.log(regex.test("hello world")); // true

// 后查找
let regex2 = /(?<=hello) world/;
console.log(regex2.test("world")); // false
console.log(regex2.test("hello world")); // true

3. Perkongsian kes praktikal:

  1. Pengesahan e-mel:
    Menggunakan ungkapan biasa boleh mengesahkan format e-mel dengan mudah untuk memastikan format e-mel yang dimasukkan oleh pengguna adalah betul.

Contoh:

function validateEmail(email) {
  let regex = /w+@w+.w+/;
  return regex.test(email);
}

console.log(validateEmail("example@mail.com")); // true
console.log(validateEmail("invalid.email")); // false
  1. Pengekstrakan URL:
    Melalui pemadanan ungkapan biasa dan pengumpulan tangkapan, anda boleh mengekstrak semua pautan URL daripada sekeping teks dengan mudah.

Contoh:

function extractUrls(text) {
  let regex = /https?://[^s]+/g;
  return text.match(regex);
}

let text = "Visit my website at https://example.com or https://google.com";
console.log(extractUrls(text)); // ["https://example.com", "https://google.com"]
  1. Penapisan perkataan sensitif:
    Ungkapan biasa boleh digunakan untuk menapis perkataan sensitif, menggantikan perkataan sensitif dengan aksara lain atau memadamnya secara langsung.

Contoh:

function filterSensitiveWords(text, wordList) {
  let regex = new RegExp(wordList.join('|'), 'gi');
  return text.replace(regex, '***');
}

let text = "This is a sensitive word: bad";
let wordList = ["bad"];
console.log(filterSensitiveWords(text, wordList)); // "This is a sensitive word: ***"

Ringkasan:
Artikel ini memperkenalkan kemahiran aplikasi lanjutan ungkapan biasa JavaScript dan berkongsi beberapa kes praktikal. Dengan mempelajari teknik dan contoh ini, pembaca boleh menggunakan ungkapan biasa dengan lebih baik untuk memproses kandungan teks dan menggunakan fungsi yang berkuasa dalam pembangunan sebenar. Walau bagaimanapun, ungkapan biasa masih merupakan teknologi yang kompleks, dan pembaca harus memberi perhatian kepada ketepatan sintaksis dan pertimbangan prestasi apabila menggunakannya.

Atas ialah kandungan terperinci Kongsi kes praktikal dan teknik lanjutan: Aplikasi lanjutan ungkapan biasa JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn