正则表达式中特殊字符处理一问?送100分!

各位兄弟,我在处理正则表达式的时候出现了一个问题,具体如下:
我使用ereg("$<?//$u", $temp)时,如果$u里面包含了正则表达式中的特殊字符,则这个函数返回值会不准确,如:$u='*'时
现在我想了一个方法就是将所有的特殊字符前加一个'',但我怕会有遗漏,所以那位兄弟可以告诉我所有的特殊字符,同时如何处理才可以只在这些特殊字符前加'',而对其它字符没有影响。
如果那为兄弟有更好的处理方法,请告诉我一下!
---------------------------------------------------------------

函数:AddSlashes()
--------------------------------------------------------------------------------

字符串处理函数库

AddSlashes
字符串加入斜线。

语法: string addslashes(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数使需要让数据库处理的字符串,引号的部份加上斜线,以供数据库查询 (query) 能顺利运作。这些会被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符 NUL (the null byte)。

---------------------------------------------------------------

ereg("$<?//$u", $temp)
^--不对吧?匹配空行?

---------------------------------------------------------------

http://www.phpe.net/articles/21.shtml

http://www.phpe.net/articles/151.shtml
http://www.phpe.net/articles/22.shtml
---------------------------------------------------------------

你想实现什么功能?特殊字符只能自己加,类似这样
$patterns=array('(\*)','(\.)','(\[)','(\])');
$replace=array('\\\1','\\\1','\\\1','\\\1');
$u = preg_replace ($patterns, $replace, $u);

---------------------------------------------------------------

给你个js,看看能用吧?

 1<script language="Javascript">   
 2<!--   
 3function ckform() {   
 4with (document.addform){   
 5if(name.value=="") {   
 6alert("您必须输入您的名字!\nPlease input your names!");   
 7name.focus();   
 8return false;   
 9}   
10  
11if(email.value=="") {   
12alert("您必须输入您的E-mail地址!\nPlease input your mail!");   
13email.focus();   
14return false;   
15}   
16var pattern=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\\.[a-zA-Z0-9_-])+/;   
17if(!pattern.test(email.value)){   
18alert("请输入正确的邮箱地址!\nE-mail not accept!");   
19email.focus();   
20return false;   
21}   
22  
23var pattern=/([!\@\\#\$%^&*()+ ¦\\\\{}:;?<>`])+/;   
24if((pattern.test(name.value))) {   
25alert("您的姓名里不能包含非法字符!\nName not accept!");   
26name.focus();   
27return false;   
28}   
29var pattern=/^(http:\/\/)[A-Za-z0-9\\-]+/;   
30if( (!pattern.test(url.value)) && (url.value!="http://") ) {   
31alert("请正确输入您的主页!\nHomepage not accept!");   
32url.focus();   
33return false;   
34}   
35var pattern=/([!\@\\#\$%^&*+ ¦\\\\{}?<>`])+/;   
36if( (pattern.test(subject.value)) ¦ ¦ (subject.value=="") ) {   
37alert('留言主题不能为空且不能有非法字符!\n Subject not accept!');   
38subject.focus();   
39return false;   
40}   
41var pattern=/([!\@\\#\$%^&*+ ¦\\\\{}?<>`])+/;   
42if( (pattern.test(message.value)) ¦ ¦ (message.value=="") ) {   
43alert('您的留言不能为空且不能有非法字符!\n Message not accept!');   
44message.focus();   
45return false;   
46}   
47}   
48return true;   
49}   
50//-->   
51</script>

---------------------------------------------------------------

试试 preg_quote
http://www.php.net/manual/zh/function.preg-quote.php
---------------------------------------------------------------

这个意思呀?
echo preg_quote("[]?+.$^(){}"); // out \[\]?\+\.\$^\(\)\{\}
---------------------------------------------------------------

看一下php的帮助文件有介绍
就是这样用。
\*\[\]

Published At
Categories with Web编程
Tagged with
comments powered by Disqus