Jadual Kandungan
Idea pelaksanaan
Contoh kod
Komponen Ungkapan Biasa
Komponen senarai keputusan
Komponen tab
Komponen kotak alat ekspresi biasa lengkap
Ringkasan
Rumah hujung hadapan web View.js Bagaimana untuk melaksanakan kotak alat ungkapan biasa menggunakan Vue?

Bagaimana untuk melaksanakan kotak alat ungkapan biasa menggunakan Vue?

Jun 25, 2023 am 10:27 AM
vue ungkapan biasa kotak alat

Sebagai alat padanan corak yang berkuasa, ungkapan biasa (Ungkapan Biasa) digunakan secara meluas dalam senario seperti pemprosesan teks dan pengesahan borang. Dalam pembangunan bahagian hadapan berdasarkan Vue, kita selalunya perlu menggunakan ungkapan biasa untuk menyelesaikan beberapa tugas, seperti pengesahan borang, pemprosesan rentetan, dsb.

Untuk menggunakan ungkapan biasa dengan lebih mudah, kami boleh menyepadukannya ke dalam aplikasi Vue kami dengan merangkum komponen kotak alat ungkapan biasa. Artikel ini akan memperkenalkan cara menggunakan Vue untuk melaksanakan kotak alat ungkapan biasa yang ringkas dan menyediakan beberapa contoh kod untuk membantu pembaca bermula dengan cepat.

Idea pelaksanaan

Kotak alat ungkapan biasa perlu mempunyai fungsi berikut:

  • Sokong pengguna untuk memasukkan ungkapan biasa dan rentetan sasaran
  • Paparkan hasil padanan ungkapan biasa, dan sediakan padanan global pilihan dan abaikan kes dan pilihan lain;
  • Menyediakan templat ungkapan biasa yang biasa digunakan dan peraturan penggantian yang dipratentukan;
  • menyokong peraturan penggantian yang ditentukan pengguna.

Untuk melaksanakan fungsi ini, kita perlu menggunakan keupayaan pembangunan komponen Vue dan API ekspresi biasa.

Secara khusus, kita boleh menganggap keseluruhan kotak alat sebagai komponen Vue, yang mengandungi komponen borang, komponen senarai hasil, komponen tab (untuk menukar templat ungkapan biasa dan peraturan penggantian), dan beberapa butang dan input Komponen asas seperti bingkai. Dalam komponen, kita boleh memanggil API ungkapan biasa untuk dipadankan dan digantikan dengan mendengar acara seperti input dan pilihan pengguna serta memaparkan butiran padanan berdasarkan keputusan.

Contoh kod

Berikut ialah contoh pelaksanaan mudah kotak alat ungkapan biasa Vue. Masa khusus perlu diselaraskan berdasarkan keperluan projek sebenar.

Komponen Ungkapan Biasa

Komponen ungkapan biasa terutamanya termasuk kotak input teks dan kotak lungsur untuk memilih templat ungkapan biasa yang biasa digunakan.

<template>
  <div class="regex-component">
    <input type="text" placeholder="请输入正则表达式" v-model="regex">
    <select v-model="template" @change="applyTemplate">
      <option v-for="(value, name) in templates" :value="value">{{ name }}</option>
    </select>
  </div>
</template>

<script>
export default {
  name: 'RegexComponent',
  props: {
    value: String, // 当前正则表达式
  },
  data() {
    return {
      regex: this.value || '', // 当前正则表达式
      template: '', // 当前选择的模板名称
      templates: { // 常用正则表达式模板
        '整数': '^\d+$',
        '浮点数': '^\d+(\.\d+)?$',
        '电子邮箱': '^\w+([-+.]w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$',
      },
    };
  },
  methods: {
    // 应用选择的模板
    applyTemplate() {
      this.regex = this.templates[this.template] || '';
      this.$emit('input', this.regex);
    },
  },
};
</script>

<style scoped>
.regex-component {
  display: flex;
  align-items: center;
}

select {
  margin-left: 10px;
}
</style>
Salin selepas log masuk

Komponen senarai keputusan

Komponen senarai keputusan digunakan terutamanya untuk memaparkan hasil padanan biasa. Ia menerima tatasusunan rentetan sebagai hasil yang sepadan, dan berulang melalui item senarai yang dipaparkan.

<template>
  <div>
    <h2>{{title}}</h2>
    <ul>
      <li v-for="(item, index) in items" :key="index">{{item}}</li>
      <li v-if="items.length === 0">无匹配结果</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'ResultListComponent',
  props: {
    title: String, // 列表标题
    items: Array, // 列表项
  },
};
</script>
Salin selepas log masuk

Komponen tab

Komponen tab digunakan untuk memaparkan templat ekspresi biasa dan peraturan penggantian.

<template>
  <div>
    <ul>
      <li :class="{'active': mode === 'pattern'}" @click="setMode('pattern')">正则表达式模板</li>
      <li :class="{'active': mode === 'replace'}" @click="setMode('replace')">替换规则</li>
    </ul>
    <div v-show="mode === 'pattern'">
      <slot name="templates"></slot>
    </div>
    <div v-show="mode === 'replace'">
      <slot name="replace-rules"></slot>
    </div>
  </div>
</template>

<script>
export default {
  name: 'TabComponent',
  data() {
    return {
      mode: 'pattern', // 当前选中的选项卡
    };
  },
  methods: {
    // 切换选项卡
    setMode(mode) {
      this.mode = mode;
    },
  },
};
</script>

<style scoped>
ul {
  display: flex;
  justify-content: space-around;
  list-style: none;
  padding: 0;
  margin: 0;
}

li {
  cursor: pointer;
}

li.active {
  color: #f00;
}
</style>
Salin selepas log masuk

Komponen kotak alat ekspresi biasa lengkap

Akhir sekali, kami menggabungkan komponen di atas untuk melaksanakan komponen kotak alat ekspresi biasa yang lengkap dan mengeksportnya untuk digunakan oleh komponen Vue yang lain. Dalam pelaksanaan, kami akan menggunakan kaedah RegExp 构造函数和 String 原型上的 match()replace() untuk padanan dan penggantian.

<template>
  <div class="regex-toolbox">
    <RegexComponent v-model="pattern"></RegexComponent>
    <textarea rows="10" placeholder="请输入目标字符串" v-model="target"></textarea>
    <TabComponent>
      <template v-slot:templates>
        <ul>
          <li v-for="(pattern, name) in predefinedPatterns" :key="name">
            <a href="#" @click.prevent="applyPattern(pattern)">{{ name }}</a>
          </li>
        </ul>
      </template>
      <template v-slot:replace-rules>
        <div>
          <p>查找:</p>
          <input type="text" v-model="search" placeholder="请输入查找内容"/>
          <p>替换为:</p>
          <input type="text" v-model="replace" placeholder="请输入替换内容"/>
        </div>
      </template>
    </TabComponent>
    <button @click="doMatch">匹配</button>
    <button @click="doReplace">替换</button>
    <ResultListComponent title="匹配结果" :items="matches"></ResultListComponent>
    <ResultListComponent title="替换结果" :items="replacements"></ResultListComponent>
  </div>
</template>

<script>
import RegexComponent from './RegexComponent';
import TabComponent from './TabComponent';
import ResultListComponent from './ResultListComponent';

export default {
  name: 'RegexToolbox',
  components: {
    RegexComponent,
    TabComponent,
    ResultListComponent,
  },
  data() {
    return {
      pattern: '', // 当前正则表达式
      target: '', // 当前目标字符串
      options: { // 匹配选项
        global: false,
        ignoreCase: false,
      },
      predefinedPatterns: { // 常用正则表达式模板
        '整数': '^\d+$',
        '浮点数': '^\d+(\.\d+)?$',
        '电子邮箱': '^\w+([-+.]w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$',
      },
      search: '', // 查找内容
      replace: '', // 替换内容
      matches: [], // 匹配结果
      replacements: [], // 替换结果
    };
  },
  methods: {
    // 应用预定义的正则表达式模板
    applyPattern(pattern) {
      this.pattern = pattern;
    },

    // 匹配目标字符串
    doMatch() {
      const regex = new RegExp(this.pattern, this.options.ignoreCase ? 'gi' : 'g');
      this.matches = this.target.match(regex) || [];
    },

    // 替换目标字符串
    doReplace() {
      const regex = new RegExp(this.search, this.options.ignoreCase ? 'gi' : 'g');
      this.replacements = this.target.replace(regex, this.replace).split('
');
    },
  },
  watch: {
    pattern() {
      this.doMatch();
    },
  },
};
</script>

<style scoped>
.regex-toolbox {
  display: flex;
  flex-direction: column;
  align-items: center;
}

textarea {
  margin: 10px 0;
  width: 100%;
}

button {
  margin: 10px;
}

.result-list-component {
  margin-top: 20px;
}
</style>
Salin selepas log masuk

Ringkasan

Artikel ini memperkenalkan cara menggunakan Vue untuk melaksanakan kotak alat ungkapan biasa yang ringkas Dengan merangkum komponen dan memanggil API ekspresi biasa, ia menyediakan pembangun bahagian hadapan dengan cara yang lebih mudah dan lebih pantas untuk memproses ungkapan biasa. Saya harap artikel ini dapat membantu pembaca lebih memahami pembangunan komponen Vue dan penggunaan ungkapan biasa, dan meningkatkan kecekapan kerja dalam pembangunan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kotak alat ungkapan biasa menggunakan Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Apa maksudnya untuk memuatkan vue malas? Apa maksudnya untuk memuatkan vue malas? Apr 07, 2025 pm 11:54 PM

Dalam vue.js, pemuatan malas membolehkan komponen atau sumber dimuatkan secara dinamik seperti yang diperlukan, mengurangkan masa pemuatan halaman awal dan meningkatkan prestasi. Kaedah pelaksanaan khusus termasuk menggunakan & lt; menyimpan-Alive & gt; dan & lt; komponen adalah & gt; komponen. Harus diingat bahawa pemuatan malas boleh menyebabkan masalah fouc (skrin percikan) dan harus digunakan hanya untuk komponen yang memerlukan pemuatan malas untuk mengelakkan overhead prestasi yang tidak perlu.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Vue menyedari kesan menatal marquee/teks Vue menyedari kesan menatal marquee/teks Apr 07, 2025 pm 10:51 PM

Melaksanakan kesan menatal marquee/teks di VUE, menggunakan animasi CSS atau perpustakaan pihak ketiga. Artikel ini memperkenalkan cara menggunakan animasi CSS: Buat teks tatal dan bungkus teks dengan & lt; div & gt;. Tentukan animasi CSS dan tetapkan limpahan: tersembunyi, lebar, dan animasi. Tentukan frasa key, set Transform: TranslateX () pada permulaan dan akhir animasi. Laraskan sifat animasi seperti tempoh, kelajuan tatal, dan arah.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Cara Menanyakan Versi Vue Cara Menanyakan Versi Vue Apr 07, 2025 pm 11:24 PM

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

See all articles