ZengCode.Com (The Thai Php Framework)  


Home   Download   Manual   About us  

MAIN MENU
News
Php Tips
Android Programming
Design Pattern By PHP
Linux Quick Tips
C# using Linq น่าใช้จริงๆ
C# Tips & Technique
Java & JavaScript Tips
Database
ZengCode Framework Guide
Zeng Code Code
Programming
IPhone (Tips and Trick)

 

     Regular expressions  (2009-12-29)

เรื่องของ Regular expressions นั้นสามารถใช้ได้กับทุกภาษา โดยสำหรับ Javascript นั้นจะช่วยให้การพัฒนาเว็บไซท์ได้ โดยช่วยได้ในการกรองข้อมูลที่ผู้เข้าชมเว็บไซท์กรอกเข้ามา ซึ่งช่วยลดการทำงานของ webserver ลงได้เยอะมากครับ

การใช้งาน regular expressions นั้น จะต้องประกาศอยู่ภายใน /.../ โดยมีส่วนสำคัญอยู่ 2 ส่วน คือ

  1. Flag เป็นตัวที่บอกว่า pattern ที่ต้องการเปรียบเทียบนั้นจะใช้แบบใด โดยมี
    • g เป็นการเปรียบเทียบแบบ case-sensitive
    • i เป็นการเปรียบเทียบแบบ case-insensitive
    • m เป็นการเปรียบเทียบแบบหลายบรรทัด *
    • s เป็นการเปรียบเทียบแบบบรรทัดเดียว *
    • x เป็นการเปรียบเทียบแบบไม่สนใจช่องว่าในข้อความ *
    * ไม่สามารถใช้ได้กับ Netscape Navigator 4 และ Internet Explorer 4
  2. Pattern เป็นรูปแบบที่ต้องการเปรียบเทียบ โดยแบ่งออกเป็น
    • Charactor matching
      • ชนิดตัวอัษร ประกอบด้วย a..z, A..Z, 0..9, \
      • ชนิด Unicode ฐาน 16 ประกอบด้วย \u0000...\uFFFF
      • ชนิด ASCII ฐาน 16 ประกอบด้วย \x00...\xFF
      • ชนิด Control charactor ประกอบด้วย \cA...\cZ
      • \0 เทียบได้กับ Null charactor \x00
      • [\b] เทียบได้กับ Back space \x08
      • \t เทียบได้กับ tab \x09
      • \r เทียบได้กับ carriage return \x0D
      • \n เทียบได้กับ newline \x0A
    • Charactor classes
      • \d ตัวเลข มีต่าเท่ากับ /[0-9]/
      • \D ไม่ใช่ตัวเลข
      • \s ช่องว่าง มีค่าเท่ากับ space, tab, \r
      • \S ไม่ใช่ช่องว่าง
      • \w คำ เทียบได้กับ กลุ่มอักษร, ตัวเลข, _
      • \W ไม่ใช่คำ
      • [...] ใช้เทียบว่ามีอยู่ในกลุ่มอักษร
      • [^...] ใช้เทียบว่าไม่มีอยู่ในกลุ่มอักษร
      • (...) ใช้จัดกลุ่มของ pattern
      • - ใช้เทียบเป็นช่วงอักษร
    • Repeaters
      • ? แทน 0 หรือ 1 ตัวอักษร
      • * แทน 0 หรือหลายตัวอักษร
      • + แทน 1 ตัวอักษรขึ้นไป
      • {n}แทนอักษรจำนวน n ตัว
      • {n,} แทนอัษรจำนวน n ตัวหรือมากกว่า
      • {n,m} แทนอักษรจำนวน n ตัวจนถึง m ตัว
      • | แทน or
      • . แทนอักษรใดๆ
    • Anchors
      • ^ เริ่มต้นด้วย
      • $ ปิดท้ายด้วย
    • Methods
      • regular_obj.test(string) เป็นการเปรียบเทียบ string กับ regular_obj
      • string.search(regular_obj) เป็นการค้นหา regular_obj จาก string
      • string.replace(regular_obj,string_replace) เป็นการแทนที่คำที่ตรงกับ regular_obj ด้วย string_replace
      • string.match(regular_obj) เป็นการเปรียบเทียบข้อความกับ regular_obj โดยจะมีการคืนค่าเป็น array ของข้อความที่ตรงกับ regular_obj
      • string.split(regular_obj) เป็นการแยกข้อความที่ตรงกับ regular_obj ออกเป็นส่วนๆ โดยจะคืนค่ามาเป็น array ของข้อความ
      • regular_obj.exec(string) จะเป็นการเปรียบเทียบข้อความ เหมือนกับ match แต่ exec เมื่อทำงานอยู่ใน loop แล้ว จะทำการเปรียบเทียบไปจนหมดข้อความ โดยมีการคืนค่าเป็น array ของข้อความเช่นเดียวกับ match

การประกาศ regular expressions object นั้นสามารทำได้ 2 แบบคือ
var regexp = new RegExp(string); เป็นการประกาศโดยใช้ constructor
var regexp = /test/; เป็นการประกาศลักษณะข้อความ

ตัวอย่างการใช้งาน
var regexp = /[0-9]{5}/; หรือ
var regexp = /\d{5}/;
alert(regexp.test("12345"));
เป็นการตรวจสอบ input อย่างง่ายๆ ในที่นี้สามารถใช้ตรวจสอบรหัสไปรษณีย์ได้

var regexp = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
เป็นการตรวจสอบ input แบบ e-mail address


Comment
Name
Comment
Security CodeCAPTCHA Image

easy tracking
avis car rental discount code

This page took 0.059400 seconds to load.