Xử lý chuỗi
01:011. Các hàm xử lý chuỗi trong Javascript
Mình không thể liệt kê hết các
hàm được mà chỉ đưa ra những hàm hay sử dụng nhất để bài viết được ngắn
gọn hơn.
Tìm kiếm chuỗi con
Chúng ta có ba hàm thường dùng để tìm kiếm chuỗi con
trong Javascript như sau:
- indexOf()
- lastIndexOf()
- search()
Hàm indexOf()
Để tìm kiếm chuỗi con thì ta sử dụng hàm String.indexOf(str)
,
trong đó str
là
chuỗi con và String
là
chuỗi cha. Hàm này sẽ trả kết quả về kết quả là vị trí xuât hiện đầu tiên của
chuỗi (bắt đầu là vị trí 0
),
nếu không tìm thấy chuỗi con thì nó sẽ trả về -1
.
1
2
var
string
=
"Chào
mừng bạn đến với freetuts.net"
;
document.write(
"Vị
trí xuất hiện chuỗi freetuts.net là: "
+
string.indexOf(
"freetuts.net"
));<br>
Hàm lastIndexOf()
Trường hợp nếu chuỗi con xuất hiện nhiều lần trong chuỗi
cha thì kết quả cũng trả về vị trí xuất hiện của chuỗi con đầu tiên. Vậy làm thế
nào để lấy vị trí của chuỗi con cuối cùng trong chuỗi cha? Ta sẽ sử dụng
hàm String.lastIndexOf(str)
,
hàm này sẽ trả về vị trí xuất hiện của chuỗi con cuối cùng và trả về -1
nếu
không tìm thấy.
1
2
var
string
=
"Website
freetuts.net - học lập trình miễn phí tại freetuts.net"
;
document.write(
"Vị
trí xuất hiện chuỗi freetuts.net là: "
+
string.lastIndexOf(
"freetuts.net"
));
Hàm search()
Ngoài hai hàm trên bạn có thể sử dụng hàm string.search(str)
để
tìm kiếm, tác dụng của nó cũng giống như hàm string.indexOf(str)
.
1
2
var
string
=
"Chào
mừng bạn đến với freetuts.net"
;
document.write(
"Vị
trí xuất hiện chuỗi freetuts.net là: "
+
string.search(
"freetuts.net"
));<br>
String.indexOf(str)
,
trong đó str
là
chuỗi con và String
là
chuỗi cha. Hàm này sẽ trả kết quả về kết quả là vị trí xuât hiện đầu tiên của
chuỗi (bắt đầu là vị trí 0
),
nếu không tìm thấy chuỗi con thì nó sẽ trả về -1
.
1
2
|
var
string
= "Chào
mừng bạn đến với freetuts.net" ; document.write( "Vị
trí xuất hiện chuỗi freetuts.net là: " +
string.indexOf( "freetuts.net" ));<br> |
String.lastIndexOf(str)
,
hàm này sẽ trả về vị trí xuất hiện của chuỗi con cuối cùng và trả về -1
nếu
không tìm thấy.
1
2
|
var
string
= "Website
freetuts.net - học lập trình miễn phí tại freetuts.net" ; document.write( "Vị
trí xuất hiện chuỗi freetuts.net là: " +
string.lastIndexOf( "freetuts.net" )); |
string.search(str)
để
tìm kiếm, tác dụng của nó cũng giống như hàm string.indexOf(str)
.
1
2
|
var
string
= "Chào
mừng bạn đến với freetuts.net" ; document.write( "Vị
trí xuất hiện chuỗi freetuts.net là: " +
string.search( "freetuts.net" ));<br> |
Cắt chuỗi con
Nếu ban muốn cắt một chuỗi con từ chuỗi cha thì bạn có
thể sử dụng ba hàm sau:
- slice(start, end)
- substring(start, end)
- substr(start, length)
Note: tất cả các vị trí
của chuỗi đều bắt đầu từ 0, vì vậy khi tính toán vị trí coi chừng bị nhầm lẫn
nhé.
Hàm slice()
Hàm slide có hai tham số truyền vào:
start
:
vị trí bắt đầu
end
:
vị trí kết thúc
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(
"Chuỗi
cần lấy là: "
+
string.slice(11,
23));<br>
Nếu tham số truyền vào là số âm thì nó sẽ tính ngược lại,
nghĩa là nó sẽ đếm từ cuối lên.
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(
"Chuỗi
cần lấy là: "
+
string.slice(-12,
23));
Nếu bạn chỉ truyền một tham số đầu tiên thì nó sẽ tự hiểu
vị trí end
là
vị trí cuối cùng.
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(
"Chuỗi
cần lấy là: "
+
string.slice(5));
Hàm substring()
Hàm substring()
có
cách sử dụng giống với hàm slice()
,
tuy nhiên tham số truyền vào hàm substring()
phải
luôn luôn lớn hơn 0
.
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(
"Chuỗi
cần lấy là: "
+
string.substring(11,
23));
Hàm substr()
Hàm substr()
có
hai tham số là start
và length
,
trong đó start
là
vị trí bắt đầu và length
là
số ký tự muốn lấy bắt đầu từ vị trí start
.
Nếu bạn truyền tham số start
là
số âm thì nó sẽ tính từ cuối trở lên, còn tham số length
phải
luôn luôn là số dương.
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(
"Chuỗi
cần lấy là: "
+
string.substr(11,
12));
start
:
vị trí bắt đầuend
:
vị trí kết thúc
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write( "Chuỗi
cần lấy là: " +
string.slice(11,
23));<br> |
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write( "Chuỗi
cần lấy là: " +
string.slice(-12,
23)); |
end
là
vị trí cuối cùng.
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write( "Chuỗi
cần lấy là: " +
string.slice(5)); |
substring()
có
cách sử dụng giống với hàm slice()
,
tuy nhiên tham số truyền vào hàm substring()
phải
luôn luôn lớn hơn 0
.
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write( "Chuỗi
cần lấy là: " +
string.substring(11,
23)); |
substr()
có
hai tham số là start
và length
,
trong đó start
là
vị trí bắt đầu và length
là
số ký tự muốn lấy bắt đầu từ vị trí start
.
Nếu bạn truyền tham số start
là
số âm thì nó sẽ tính từ cuối trở lên, còn tham số length
phải
luôn luôn là số dương.
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write( "Chuỗi
cần lấy là: " +
string.substr(11,
12)); |
Tìm kiếm và lặp chuỗi
Để tìm kiếm và lặp một chuỗi con nào đó thì bạn sử dụng
hàm replace(str_find,
str_replace)
, trong đó str_find
là
chuỗi cần tìm và str_replace
là
chuỗi sẽ được thay thế chuỗi str_find
.
1
2
var
string
=
"Welcome
to freetuts.net"
;
document.write(string.replace(
"freetuts.net"
,
"freetuts.net"
));
replace(str_find,
str_replace)
, trong đó str_find
là
chuỗi cần tìm và str_replace
là
chuỗi sẽ được thay thế chuỗi str_find
.
1
2
|
var
string
= "Welcome
to freetuts.net" ; document.write(string.replace( "freetuts.net" ,
"freetuts.net" )); |
Chuyển thành chữ hoa và chữ thường
Để chuyển chuỗi thành chữ hoa ta dùng hàm toUpperCase()
và
chuyển thành chữ thường ta dùng hàm toLowerCase()
.
1
2
3
var
string
=
"Welcome
to freetuts.net"
;
document.write(string.toUpperCase()
+
"<br/>"
);
document.write(string.toLowerCase());
toUpperCase()
và
chuyển thành chữ thường ta dùng hàm toLowerCase()
.
1
2
3
|
var
string
= "Welcome
to freetuts.net" ; document.write(string.toUpperCase()
+ "<br/>" ); document.write(string.toLowerCase()); |
Nối thêm chuỗi
Để nối thêm chuỗi thông thường ta dùng toán tử +
, ngoài
ra bạn có thể dùng hàm concat()
để
thực hiện nối chuỗi.
1
2
3
4
5
6
7
var
string
=
"Welcome
"
+
"to"
+
"
freetuts.net"
;
document.write(string
+
"<br/>"
);
//
hoặc
var
string
=
"Welcome
"
;
string
= string.concat(
"to
"
,
"freetuts.net"
);
document.write(string
+
"<br/>"
);
+
, ngoài
ra bạn có thể dùng hàm concat()
để
thực hiện nối chuỗi.
1
2
3
4
5
6
7
|
var
string
= "Welcome
" +
"to"
+
"
freetuts.net" ; document.write(string
+ "<br/>" ); //
hoặc var
string
= "Welcome
" ; string
= string.concat( "to
" ,
"freetuts.net" ); document.write(string
+ "<br/>" ); |
Tìm ký tự hoặc mã ASCII của một ký tự
Để xem ký tự của một vị trí nào đó thì dùng hàm charAt()
,
còn xem mã ASCII thì dùng hàm charCodeAt()
.
Cả hai hàm này đều có tham số truyền vào là vị trí muốn xem.
1
2
3
4
var
string
=
"Welcome
to hotel
california"
;
document.write(string.charAt(1)
+
"<br/>"
);
document.write(string.charCodeAt(1)
+
"<br/>"
);
charAt()
,
còn xem mã ASCII thì dùng hàm charCodeAt()
.
Cả hai hàm này đều có tham số truyền vào là vị trí muốn xem.
1
2
3
4
|
var
string
= "Welcome
to hotel
california" ; document.write(string.charAt(1)
+ "<br/>" ); document.write(string.charCodeAt(1)
+ "<br/>" ); |
Chuyển đổi chuỗi sang mảng
Để chuyển một chuỗi sang mảng thì ta sử dụng hàm split()
với
tham số truyền vào là ký tự ngăn cách giữa các phần tử.
1
2
3
4
5
<script
language="javascript" type="text/javascript">
var
str =
"Welcome
to hotel california"
;
var arr = new Array();
// Tạo thành
mảng với mỗi phần tử ngăn bởi khoảng trắn
document.write(str.split(" ").length);
arr = str.split(" ");
document.write(arr[2]);
</script>
//
kết quả in ra là: 4
hotel
split()
với
tham số truyền vào là ký tự ngăn cách giữa các phần tử.
1
2
3
4
5
|
<script
language="javascript" type="text/javascript"> var
str = "Welcome
to hotel california" ;
var arr = new Array();
// Tạo thành
mảng với mỗi phần tử ngăn bởi khoảng trắn
document.write(str.split(" ").length);
arr = str.split(" ");
document.write(arr[2]);
</script>
//
kết quả in ra là: 4
hotel |
0 nhận xét