GORAGOD.com

freelance, web developer, web designer, hosting, domain name

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

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



ขอบคุณครับ
12 พ.ย. 2555 4 1,669

ใช้ 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
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^