ถามเกี่ยวกับ Regular expression ครับ HomeForumถามเกี่ยวกับ Regular expression ครับ Popup Art ถ้าเกิดอยากโชว์ ตัวเลขเฉพาะสองตัวแรกส่วนข้างหลังจะมีกี่ตัวก็ให้โชว์เป็น x ตามจำนวน ต้องเขียน Regular expression ยังไงครับ ขอบคุณครับ กรกฎ วิริยะ ใช้ regular น่าจะยากไปนะครับ ใช้วิธีนับตัวอักษร จะดีกว่ามั้งครับ ด้วยการตัดตัวอักษรตัวแรกออก แล้วแทนที่ตัวอักษรที่เหลือด้วย xxx <?php $text = '0123456789'; $len = strlen($text); $a = substr($text,0,2); $text = $a.str_repeat('x', $len-2); echo $text; ?> BlueEye วิโรจน์ คชินทร์ ขออนุญาตครับ $str = substr($text, 0, 2).str_repeat('x', strlen($text) - 2); แบบนี้น่าจะถูกกว่ามั้ยครับ เพราะ substr($text,2) มันตัดสองตัวหน้าออก และตรง str_len น่าจะเป็น strlen กรกฎ วิริยะ 555++ ความผิดของผมเองแหละครับ ดูมันก็แหม่งๆ อยู่ แต่เนื่องจากเป็นฟังก์ชั่นที่ไม่ค่อยได้ใช้ครับ ผมแก้ไขให้แล้วนะครับ (ทดสอบแล้วด้วย) Popup Art ขอบคุณครับ ผมลองเขียนแบบนี้ preg_replace('/(?!^.?)[0-9](?!(.){-1}$)/', 'X', number_format($value)); มันจะแสดงแค่ตัวแรก เช่น 1,000 => 1,XXX ครับ ด้วยความอยากได้ code ที่สั้น สงสัยผมคิดยากไป 55+ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
ใช้วิธีนับตัวอักษร จะดีกว่ามั้งครับ ด้วยการตัดตัวอักษรตัวแรกออก แล้วแทนที่ตัวอักษรที่เหลือด้วย xxx
$text = '0123456789';
$len = strlen($text);
$a = substr($text,0,2);
$text = $a.str_repeat('x', $len-2);
echo $text;
?>
$str = substr($text, 0, 2).str_repeat('x', strlen($text) - 2);
แบบนี้น่าจะถูกกว่ามั้ยครับ เพราะ substr($text,2) มันตัดสองตัวหน้าออก
และตรง str_len น่าจะเป็น strlen
ความผิดของผมเองแหละครับ ดูมันก็แหม่งๆ อยู่ แต่เนื่องจากเป็นฟังก์ชั่นที่ไม่ค่อยได้ใช้ครับ
ผมแก้ไขให้แล้วนะครับ (ทดสอบแล้วด้วย)
ผมลองเขียนแบบนี้
มันจะแสดงแค่ตัวแรก เช่น 1,000 => 1,XXX ครับ ด้วยความอยากได้ code ที่สั้น สงสัยผมคิดยากไป 55+