Bagaimana cara memeriksa apakah string yang berisi substring?
Saya memiliki keranjang belanja yang menampilkan produk pilihan di menu dropdown dan jika mereka pilih "ya", saya ingin membuat beberapa bidang lainnya di halaman terlihat.
Masalahnya adalah bahwa keranjang belanja juga termasuk harga pengubah dalam teks, yang dapat berbeda untuk setiap produk. Kode berikut berfungsi:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str == "Yes (+ $6.95)") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Namun saya lebih suka menggunakan sesuatu seperti ini, yang doesn't bekerja:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Aku hanya ingin melakukan tindakan jika opsi yang dipilih berisi kata-kata "Ya", dan akan mengabaikan harga pengubah.
957
13
Seperti ini:
...atau anda dapat menggunakan tilde operator:
Ini bekerja karena
indexOf()
mengembalikan-1
jika string tidak't ditemukan di semua.Catatan bahwa ini adalah case-sensitive. Jika anda ingin kasus-sensitif cari, anda dapat menulis
Atau,
Anda bisa menggunakan pencarian atau pertandingan untuk ini.
str.pencarian( 'Ya' )
akan mengembalikan posisi setara, atau -1 jika isn't menemukan.
It's cukup terlambat untuk menulis jawaban ini, tapi saya pikir seperti itu bagaimanapun.
String.prototipe
sekarang memiliki metodemencakup
yang dapat memeriksa substring. Metode ini adalah kasus sensitif.Untuk memeriksa substring, pendekatan berikut dapat diambil:
Check out dokumentasi untuk mengetahui lebih lanjut.
Cara lain:
Diuji pada Firefox, Safari 6 dan Chrome 36
ECMAScript 6 memperkenalkan
String.prototipe.termasuk
, sebelumnya bernamaberisi
.Hal ini dapat digunakan seperti ini:
Hal ini juga menerima opsional kedua argumen yang menentukan posisi di mana untuk mulai mencari:
Hal ini dapat polyfilled untuk membuatnya bekerja pada browser lama.
Kembali berapa kali kata kunci tersebut dimasukkan dalam string.
Anda dapat menggunakan ini Polyfill di ie dan chrome
Saya tahu bahwa cara terbaik adalah
str.indexOf(s) !== -1;
http://hayageek.com/javascript-string-contains/Saya menyarankan cara lain(
str.mengganti(s1, "") !== str
):Jika anda mampu menggunakan perpustakaan, anda mungkin menemukan bahwa Lo-Dash JS library ini cukup berguna. Dalam hal ini, pergi ke depan dan memeriksa
_.berisi()
(diganti oleh_.termasuk()
sebagai v4).(Catatan Lo-Dash konvensi penamaan perpustakaan obyek _. Don't lupa untuk memeriksa instalasi di halaman yang sama untuk mengatur itu untuk proyek anda.)
Dalam kasus anda, pergi ke depan dan menggunakan:
..mana satu yang anda suka lebih baik.
Anda juga bisa memeriksa apakah yang tepat kata-kata yang terkandung dalam suatu string. E. g.:
Penggunaan:
Ini adalah bagaimana jQuery tidak hasClass metode.
Di atas tidak ada yang bekerja untuk saya karena ada ruang kosong tapi ini adalah apa yang saya lakukan
anda dapat menentukan metode penyuluhan dan menggunakannya nanti.
sehingga dapat anda gunakan dalam halaman anda di mana saja seperti:
yang kembali sejati.
Lihat di bawah posting untuk lebih ekstensi metode pembantu. Javascript metode pembantu