Saya ingin memotong string yang dimuat secara dinamis menggunakan JavaScript lurus. Ini url, jadi tidak ada spasi, dan saya jelas tidak peduli tentang batas kata, hanya karakter.
Inilah yang saya dapatkan:
var pathname = document.referrer; //wont work if accessing file:// paths
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
javascript
truncate
Bob
sumber
sumber
Jawaban:
Gunakan metode substring :
Jadi dalam kasus Anda:
sumber
length
- mengembalikan kosong.toString().
untuk mengubahnya menjadi string yangsubstring()
dapat menangani.ya, substring. Anda tidak perlu melakukan Math.min; substring dengan indeks yang lebih panjang dari panjang string berakhir pada panjang aslinya.
Tapi!
Ini sebuah kesalahan. Bagaimana jika document.referrer memiliki tanda kutip? Atau berbagai karakter lain yang memiliki makna khusus dalam HTML. Dalam kasus terburuk, kode penyerang di pengarah dapat menyuntikkan JavaScript ke halaman Anda, yang merupakan lubang keamanan XSS.
Sementara itu mungkin untuk melarikan diri karakter dalam pathname secara manual untuk menghentikan hal ini terjadi, itu agak menyebalkan. Anda lebih baik menggunakan metode DOM daripada mengutak-atik string innerHTML.
sumber
Kupikir aku akan memberi Sugar . Ini memiliki metode terpotong yang cukup pintar.
Dari dokumentasi :
Contoh:
Keluaran:
sumber
Sugar is a Javascript library that extends native objects
... Memperluas objek asli dalam JavaScript umumnya dianggap sebagai Ide Buruk ™.Kode berikut memotong string dan tidak akan membagi kata, dan sebaliknya membuang kata di mana pemotongan terjadi. Benar-benar berdasarkan sumber Sugar.js.
sumber
Inilah satu metode yang dapat Anda gunakan. Ini adalah jawaban untuk salah satu Tantangan FreeCodeCamp:
sumber
Versi ES6 yang diperbarui
sumber
Ya,
substring
sangat bagus:sumber
jika Anda ingin memotong dengan kata.
sumber
sumber