2010-07-22 38 views

Trả lời

28
$string = preg_replace('/-{2,}/','-',$string); 
+0

+1 để sử dụng niềng răng. –

+1

Hiệu suất của niềng răng có tốt hơn đáng kể sau đó chỉ là '- +' không? – Wrikken

+0

Cảm ơn Mark! :-D Có dễ dàng xóa bỏ dấu nối, nếu chuỗi bắt đầu bằng dấu gạch ngang không? Ví dụ như "--hello --- world" hóa ra là "hello-world"? – kasperwf

0

thử $string = preg_replace('/-+/', '-', $string)

0
$string = preg_replace('/--+/', '-', $string); 
0

Dưới đây là các chức năng Tôi đang sử dụng - hoạt động như một nét duyên dáng :)

public static function setString($phrase, $length = null) { 
    $result = strtolower($phrase); 
    $result = trim(preg_replace("/[^0-9a-zA-Z-]/", "-", $result)); 
    $result = preg_replace("/--+/", "-", $result); 
    $result = !empty($length) ? substr($result, 0, $length) : $result; 
    // remove hyphen from the beginning (if exists) 
    $first_char = substr($result, 0, 1); 
    $result = $first_char == "-" ? substr($result, 1) : $result; 
    // remove hyphen from the end (if exists) 
    $last_char = substr($result, -1); 
    $result = $last_char == "-" ? substr($result, 0, -1) : $result;  
    return $result; 
} 
2

Để loại bỏ chúng khỏi đầu và kết thúc:

$string = trim($string, '-'); 
+1

Không thực sự hữu ích khi đăng câu trả lời một phần 3 năm sau khi câu hỏi được hỏi –

+2

Nhiều người đến qua Google ** hàng ngày **. Thông tin này được đọc mỗi ngày trong ba năm này và nó sẽ kéo dài. Unfortunatenly, không thể thêm điều này làm bình luận. – dragonattack

Các vấn đề liên quan