Saya ingin tahu apakah sebuah string dimulai dengan karakter / string yang ditentukan atau diakhiri dengan jQuery.
Sebagai contoh:
var str = 'Hello World';
if( str starts with 'Hello' ) {
alert('true');
} else {
alert('false');
}
if( str ends with 'World' ) {
alert('true');
} else {
alert('false');
}
Jika tidak ada fungsi maka ada alternatif?
javascript
jquery
string
Naveed
sumber
sumber
Jawaban:
Salah satu opsi adalah menggunakan ekspresi reguler:
sumber
str.match(/^Hello/)
Tetapi formulir/regex/.test(str)
ini lebih baik untuk kasus khusus ini, per stackoverflow.com/questions/10940137/…var isUnavailable = $("#StatusId option:selected").text().match("^Unavailable - ");
- mengapa ini mengembalikan null ketika opsi yang dipilih adalah "Tidak tersedia - Lainnya"?Sebagai permulaan, Anda dapat menggunakan indexOf:
...
ref
dan Anda dapat melakukan matematika berdasarkan panjang string untuk menentukan 'endswith'.
sumber
lastIndexOf()
untuk endswith;)("1234".lastIndexOf('Hello') == "1234".length - 'Hello'.length)
menghasilkan true.Tidak perlu jQuery untuk melakukan itu. Anda bisa mengkodekan pembungkus jQuery tetapi itu akan sia-sia jadi sebaiknya Anda gunakan
karena metode match () tidak digunakan lagi.
PS: bendera "i" di RegExp adalah opsional dan singkatan dari case-sensitive (jadi ini juga akan mengembalikan true untuk "hello", "hEllo", dll.).
sumber
Anda tidak benar-benar membutuhkan jQuery untuk tugas-tugas seperti itu. Dalam spesifikasi ES6 mereka sudah memiliki keluar dari metode kotak startsWith dan endsWith .
Saat ini tersedia dalam FF dan Chrome . Untuk browser lama, Anda dapat menggunakan polyfill atau substr
sumber
Anda selalu dapat memperluas
String
prototipe seperti ini:Dan gunakan seperti ini:
sumber
ES6 sekarang mendukung
startsWith()
danendsWith()
metode untuk memeriksa awal dan akhirstring
s. Jika Anda ingin mendukung mesin pre-es6, Anda mungkin ingin mempertimbangkan untuk menambahkan salah satu metode yang disarankan keString
prototipe.sumber
()[].
) akan merusak metode polyfill Anda. Anda perlu menyiapkan string dengan fungsi regex-escape. Atau bahkan lebih baik: Gunakan polyfill yang sudah teruji pertempuran daricore-js