Saya memiliki halaman dengan kotak teks di mana pengguna seharusnya memasukkan kode registrasi 24 karakter (huruf dan angka, tidak sensitif huruf besar-kecil). Saya dulu maxlength
membatasi pengguna untuk memasukkan 24 karakter.
Kode registrasi biasanya diberikan sebagai kelompok karakter yang dipisahkan oleh tanda hubung, tetapi saya ingin agar pengguna memasukkan kode tanpa tanda hubung.
Bagaimana saya bisa menulis kode JavaScript saya tanpa jQuery untuk memeriksa bahwa string yang diberikan input pengguna tidak mengandung tanda hubung, atau lebih baik lagi, hanya berisi karakter alfanumerik?
javascript
string
Sungai Vivian
sumber
sumber
inArray
.Jawaban:
Untuk menemukan "halo" di
your_string
Untuk alfa numerik Anda dapat menggunakan ekspresi reguler:
http://www.regular-expressions.info/javascript.html
Ekspresi Reguler Numerik Alpha
sumber
/hello/g.test(your_string)
. Sementara indexOf bekerja, saya pikir tes regex menceritakan kisah yang lebih baik tentang apa yang ingin Anda capai Jika saya mencoba menemukan urutan karakter di dalam string, indeksnya tidak relevan.Dengan ES6. Termasuk ()
E: Tidak didukung oleh IE - sebagai gantinya Anda dapat menggunakan Tilde opperator
~
( Bitwise NOT ) dengan .indexOf ()Digunakan dengan angka, operator Tilde efektif
~N => -(N+1)
. Gunakan dengan negasi ganda!!
( TIDAK logis ) untuk mengonversi angka dalam bools:sumber
Jika Anda memiliki teks dalam variabel
foo
:Ini akan menguji dan memastikan pengguna telah memasukkan setidaknya satu karakter, dan hanya memasukkan karakter alfanumerik.
sumber
periksa apakah string (kata / kalimat ...) berisi kata / karakter tertentu
sumber
ES6 berisi metode inbuilt (
includes
) di Stringprototype
, yang dapat digunakan untuk memeriksa apakah string berisi string lain atau tidak.Polyfill berikut dapat digunakan untuk menambahkan metode ini di browser yang tidak didukung. ( Sumber )
sumber
Gunakan ekspresi reguler untuk mencapai ini.
sumber
Anda semua berpikir terlalu keras. Cukup gunakan Ekspresi Reguler sederhana, itu adalah teman terbaik Anda.
Pelajari Regex dalam 5 menit?
sumber
if ( string1.test(regex) ) { alert("He likes pizza!"); }
var regex = /^[a-z0-9]+$/i
regex.test(string1)
regex.test(str)
. (str.match(regex)
serupa, tetapi tidak mengembalikan boolean.)Jika Anda mencari karakter di awal atau di akhir string, Anda juga dapat menggunakan
startsWith
danendsWith
sumber
sumber
Untuk menguji hanya karakter alfanumerik:
Regex sedang menguji untuk 1 atau lebih (+) dari himpunan karakter 0-9, AZ, dan az, dimulai dengan awal input (^) dan berhenti dengan akhir input ($).
sumber
Jawaban Kevin benar tetapi membutuhkan angka "ajaib" sebagai berikut:
Dalam hal ini Anda perlu tahu bahwa -1 berarti tidak ditemukan . Saya pikir versi yang sedikit lebih baik adalah:
sumber
indexOf()
akan mengembalikan -1 jika string tidak ditemukan. Jadi itu hampir tidak lebih ajaib daripada menggunakan 0 .Coba ini:
Berikut ini sebuah contoh: http://jsfiddle.net/oliverni/cb8xw/
sumber
Fungsi pencarian string juga berguna. Itu mencari karakter serta sub_string dalam string yang diberikan.
'apple'.search('pl')
kembali2
'apple'.search('x')
kembali-1
sumber
Jika Anda membaca data dari DOM seperti ap atau tag h1, misalnya, Anda ingin menggunakan dua fungsi JavaScript asli, itu mudah, tenang tetapi terbatas pada es6, setidaknya untuk solusi yang akan saya berikan. Saya akan mencari semua tag p dalam DOM, jika teks berisi "T" seluruh paragraf akan dihapus. Saya harap contoh kecil ini membantu seseorang!
HTML
JS
sumber
Bekerja dengan sempurna. Contoh ini akan sangat membantu.
sumber
Demonstrasi: Metode include () menemukan karakter "berisi" di seluruh string, itu akan mengembalikan true.
sumber
Periksa apakah string alfanumerik atau alfanumerik + beberapa karakter yang diizinkan
Metode alfanumerik tercepat mungkin seperti yang disebutkan di: Cara terbaik untuk memeriksa alfanumerik dalam Javascript karena beroperasi pada rentang angka secara langsung.
Kemudian, untuk memungkinkan beberapa karakter tambahan lain secara masuk akal kita bisa menempatkan mereka dalam
Set
untuk pencarian cepat.Saya percaya bahwa implementasi ini akan menangani pasangan pengganti dengan benar.
GitHub hulu .
Diuji dalam Node.js v10.15.1.
sumber