How to upgrade DDTH PostPad v0.00 !
Trước hết xin m�i các bác ghé đây xem thông tin http://www.vninformatics.com/forum/?action=msg&msg=102345<br>3330#1023453330
và download trước ...
À ... bữa trước post bà i vội quá nên quên thêm một chút thông tin v� tác giả và chương trình rồi ! Hè hè, bây gi� thêm nè "PostPad ver 0.00 : sản phẩm của thà nh viên box GLLQ, TTNT, C++, CTDL, Linhtinh... đã xuất xưởng !..."
È, chÆ¡i váºy thui, bà i nà y post lên là nhằm giúp những bác trình độ JS bèo nhèo như em đỡ tốn tà công sức khi phát triển tiếp chương trình :
- Trước hết, má»?i cải tiến, nâng cấp có thể sá»a đổi trong file parsedata.js nằm trong folder DDTHForumTreXanh.
- Hà m parseHTML() đuợc viết như sau :
+ Dùng hà m Replace() của lớp String để chuyển đổi từ dạng DDTHCode sang dạng HTMLCode.
+ Dùng các Regular Expression để xác định chuỗi DDTHCode cần đuợc thay thế !
+ Dùng các tag của HTMLCode để thay thế.
- Một số cú pháp thông dụng với Regular Expression (đã đặt trong dấu nháy ' ') :
'\' : Marks the next character like C/C++ done (\n, \r, \t)
'^' : Matches the beginning of input.
'$' : Matches the end of input.
'*' : Matches the preceding character zero or more times.
'+' : Matches the preceding character one or more times.
'?' : Matches the preceding character zero or one time.
'.' : Matches any single character except a newline character.
'(p)' : Matches pattern p and remembers the match. Retrieve from $1,$2...
'x|y' : Matches either x or y.
'{n,m}' : m,n >= 0. Matches preceding character at least n and at most m times.
'[...]' : A character set. Matches any one of the enclosed characters.
'[^...]' : A negative character set. Matches any character not enclosed.
'\d' : Matches a digit character.Equivalent to [0-9].
'\D' : Matches a nondigit character. Equivalent to [^0-9].
'\s' : Matches any white space including space, tab, form-feed, etc.
'\S' : Matches any nonwhite space character.
'\w' : Matches any word character including underscore.
'\W' : Matches any nonword character.
'\num' : Matches num, where num is a positive integer.
'\xn' : Matches n, where n is a two digits long hexadecimal value.
Các bác váºn dụng các qui tắc trên để parse ... và dụ :
- RegExp = /({color=0000FF}color=#{/color})(\xn\xn\xn)/g sẽ match với những chuỗi "color=#0ff00f" hay "color=#f00f0f"... chứ không match với "color=#0f" hay "color=0fffa0" ...
- Bây giá»? váºn dụng để thay thế thà nh chuá»—i "font color=#..." như sau :
str.replace(RegExp, "font color=#$2");
* Ở đây dấu ngoặc () trên cái RegExp là để retrieve sau nà y thông qua ký tự $[index], và dụ ở đây $1 sẽ là chuỗi "color=#", $2 là cái chuỗi số hex 3 bytes
Váºy hén ... cứ thế mà tiến ... À quên ... có thêm 1 bug nữa mà không để ý, đó là ký tá»± spacebar, nếu các bác gõ nhiá»?u spacebar liên tục nhau thì chương trình hiện ra hổng giống ... do đó, xin má»?i các bác và o hà m parseHTML() và thêm dòng sau :
dataparsed = dataparsed.replace(/\s\s/g,"&n'bsp;&n'bsp;");
(Thêm 2 cái dấu nháy xanh xanh để cái trang web không hiểu nhầm khi post bà i nà y ...)
À, nhớ thêm cho đúng vị trà đó ! Và dụ nên để ngay trên cái dòng "fileheader=..."
Thui ... hết rồi !... Nếu ai hổng down Ä‘uợc thì mail tá»›i em ... em sẽ gá»i lại !...