พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
Javascript Articles / Regular expressions
Administrator
Thu 1 Sep 2005 02:03:03
เรื่องของ 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
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login