A-AA+then

ถามเกี่ยวกับ Regular expression ครับ

1,057
ถ้าเกิดอยากโชว์ ตัวเลขเฉพาะสองตัวแรกส่วนข้างหลังจะมีกี่ตัวก็ให้โชว์เป็น x ตามจำนวน ต้องเขียน Regular expression ยังไงครับ

ขอบคุณครับ

4 ความคิดเห็น

ใช้ regular น่าจะยากไปนะครับ

ใช้วิธีนับตัวอักษร จะดีกว่ามั้งครับ ด้วยการตัดตัวอักษรตัวแรกออก แล้วแทนที่ตัวอักษรที่เหลือด้วย xxx

<?php
 $text = '0123456789';
 $len = strlen($text);
  $a = substr($text,0,2);
  $text = $a.str_repeat('x', $len-2);
 echo $text;
?>
1

ขออนุญาตครับ
$str = substr($text, 0, 2).str_repeat('x', strlen($text) - 2);
แบบนี้น่าจะถูกกว่ามั้ยครับ เพราะ substr($text,2) มันตัดสองตัวหน้าออก
และตรง str_len น่าจะเป็น strlen
2

555++

ความผิดของผมเองแหละครับ ดูมันก็แหม่งๆ อยู่ แต่เนื่องจากเป็นฟังก์ชั่นที่ไม่ค่อยได้ใช้ครับ laugh

ผมแก้ไขให้แล้วนะครับ (ทดสอบแล้วด้วย)
3

ขอบคุณครับ

ผมลองเขียนแบบนี้
preg_replace('/(?!^.?)[0-9](?!(.){-1}$)/', 'X', number_format($value));
มันจะแสดงแค่ตัวแรก เช่น 1,000 => 1,XXX ครับ ด้วยความอยากได้ code ที่สั้น สงสัยผมคิดยากไป 55+
4
^