Tôi muốn có thể phát hiện xem chuỗi có a. trong đó và trả về true/false dựa trên đó.Làm cách nào để kiểm tra xem chuỗi của tôi có chứa một khoảng thời gian trong JavaScript không?
Ví dụ:
"myfile.doc" = TRUE
vs
"mydirectory" = FALSE;
Tôi muốn có thể phát hiện xem chuỗi có a. trong đó và trả về true/false dựa trên đó.Làm cách nào để kiểm tra xem chuỗi của tôi có chứa một khoảng thời gian trong JavaScript không?
Ví dụ:
"myfile.doc" = TRUE
vs
"mydirectory" = FALSE;
Sử dụng indexOf()
var str="myfile.doc";
var str2="mydirectory";
if(str.indexOf('.') !== -1)
{
// would be true. Period found in file name
}
if(str2.indexOf('.') !== -1)
{
// would be false. No period found in directory name
}
Một số regex đơn giản sẽ làm.
if (myString.match(\.)) {
doSomething();
}
Chỉ cần kiểm tra giá trị trả lại của phương thức indexOf
: someString.indexOf('.') != -1
. Không cần regex.
enough..gets thật của tôi 1 – james
Sử dụng chỉ mụcOf. Nó trả về một số nguyên cho biết vị trí của một chuỗi con, hoặc -1 nếu nó không được tìm thấy.
Ví dụ:
var test="myfile.doc"
if (test.indexOf('.')) {alert("Period found!";}
else {alert("Period not found. Sorry!";}
Chỉ cần để thêm vào những gì đã được nói:
Có nhiều ý kiến khác nhau về việc có hay không đây là một tốt ý tưởng, nhưng bạn có thể mở rộng tất cả các trường hợp String
với phương thức contains
nếu bạn muốn:
String.prototype.contains = function(char) {
return this.indexOf(char) !== -1;
};
Tôi có xu hướng thích loại điều này, khi nó (tương đối) rõ ràng một phương pháp sẽ làm gì.
Tôi biết đây là một câu hỏi cũ, nhưng đây là một cách mới để làm điều đó (không được hỗ trợ trong các trình duyệt cũ):
str.includes('.'); //returns true or false
'indexOf' trả về -1 khi không tìm thấy ký tự, không phải 0. – jwodder
Bạn nên so sánh với -1 không phải 0; nơi ký tự đầu tiên là một khoảng thời gian, indexOf() sẽ trả về 0. – kwah
Haha đó là những gì sẽ xảy ra khi bạn đang nghĩ đến strpos() và mã hóa indexOf() :) – AlienWebguy