Làm cách nào để sử dụng hàm preg_match() để kiểm tra chuỗi để xem có bất kỳ dấu cách nào tồn tại không?Làm thế nào để sử dụng preg_match để kiểm tra không gian?
dụ
"câu này sẽ được kiểm tra đúng đối với không gian"
"thisOneWouldTestFalse"
Làm cách nào để sử dụng hàm preg_match() để kiểm tra chuỗi để xem có bất kỳ dấu cách nào tồn tại không?Làm thế nào để sử dụng preg_match để kiểm tra không gian?
dụ
"câu này sẽ được kiểm tra đúng đối với không gian"
"thisOneWouldTestFalse"
Nếu bạn quan tâm trong bất kỳ khoảng trắng (bao gồm các tab vv), sử dụng \s
if (preg_match("/\\s/", $myString)) {
// there are spaces
}
nếu bạn chỉ quan tâm đến không gian thì bạn thậm chí không cần regex:
if (strpos($myString, " ") !== false)
Cũng xem this StackOverflow question giải quyết vấn đề này.
Và, tùy thuộc vào nếu bạn muốn để phát hiện các tab và các loại khác khoảng trắng, bạn có thể muốn nhìn vào perl cú pháp biểu thức chính quy cho những thứ như \ b \ w và [: SPACE:]
bạn có thể sử dụng:
preg_match('/[\s]+/',.....)
[\\S]
đựng pin- trên 'S' chắc chắn sẽ làm việc.
Cách sử dụng ctype_graph cho mục đích này? Điều này sẽ mở rộng phạm vi không gian để có nghĩa là bất kỳ "không gian trắng char" mà không in bất cứ điều gì có thể nhìn thấy trên màn hình (như \ t, \ n) cũng có. Tuy nhiên đây là bản địa và phải nhanh hơn preg_match.
$x = "string\twith\tspaces" ;
if(ctype_graph($x))
echo "\n string has no white spaces" ;
else
echo "\n string has spaces" ;
nhanh hơn để sử dụng:
strstr($string, ' ');
Bạn đã có những thông số strpos xung quanh một cách sai lầm. Nên là: nếu (strpos ($ myString, "")! == false) – ncatnow
@ncatnow, cảm ơn những người đứng đầu. Đó là ngồi đó, sai, gần một năm. : p – nickf
bạn có biết nơi liên kết đến tài liệu giải thích \ s \ b \\ S v.v. không? – Pacerier