百度参数不合法包含非合法字符,查询失败什么意思

Discuz! 出现“您当前的访问请求当中含有非法字符“解决方法 | Maro的博客查看:1821|回复:6
有一数据表,姓名字段为NVARCHAR(30),现在想找出姓名中所有含非汉字字符的记录出来,试了一些方法都不成功,不知道是不是unicode存储的原因,比如len(xm)*2&&datalength(xm),和patindex('%[吖-做]%',xm)=0等都找不到一条记录,
用CHARINDEX函数能正确查出含有某一个字符的姓名,但只能找一个不方便,用PATINDEX查某个字符时,一条记录都找不出,别说通配符了,奇怪!
本帖最后由 sp61 于
11:24 编辑
这些函数使用的时候请仔细看一下使用方法。
使用不对 当然不出结果了
len()*2&&datalength() 如果varchar应该是可以检查的啊
patindex记不得语法了,可以查下
SQL Server MCITP, MVP, MCT, DBA
初级工程师
select * from table where xm like '%[a-z]%'&&
这样就可以查出有非汉字的列了吧 可以再加上数字的判断 or xm like '%[0-9]%'
高级工程师
引用:原帖由 lantshirt 于
15:18 发表
select * from table where xm like '%[a-z]%'&&
这样就可以查出有非汉字的列了吧 可以再加上数字的判断 or xm like '%[0-9]%' 这个好像要用正则匹配吧
select * from table where xm regexp '[[:alnum:]]'
用like通配也不行啊!其实“非汉字”字符范围很宽,除了数字、字母、西文标点,还有全角的中文标点,如“。”等等,我想只能指定汉字字符集的首尾进行界定才行,但不知用什么方式来实现!
先将字段的值转为varchar类型,这时中文字符会变为?,然后将?替换为空格,如果包含英文字符最终的长度会大于0,如果都是中文,最终结果是0
你可以这么试试:
SELECT replace(CAST(i.ContactName AS VARCHAR),'?',''), * FROM Invoice AS i WHERE len(replace(CAST(i.ContactName AS VARCHAR),'?',''))&0君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
大学生心理疏导支持系统的研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口> 求一正则表达式,判断字符串中是否包含非法字符主要是不能包含键盘上数字上方的特殊符号和?等,由于不是
求一正则表达式,判断字符串中是否包含非法字符主要是不能包含键盘上数字上方的特殊符号和?等,由于不是
s1y2w3ily & &
发布时间: & &
浏览:829 & &
回复:2 & &
悬赏:0.0希赛币
求一正则表达式,判断字符串中是否包含非法字符主要是不能包含键盘上数字上方的特殊符号和?等,由于不是从web而是从excel表中导入,所以无法使用js中的方法,望高手不吝赐教!谢谢
[^ !@#$%\^&*()]+
以上是取反字符集,不要屏蔽的字符都加到[^ ]里即可
注: ] \ ^ - 这四个字符加时需要转义,如[^ \-\^\]\\]
import java.util.regex.*;
// 表达式对象
Pattern p = pile( &[^ !@#$%\\^&*()]+ &);
// 创建 Matcher 对象
Matcher m = p.matcher( &your string &);
String newstring = m.replaceAll( &replace to &);
xudong2211 & &
& & (0)(0)import java.util.regex.* ;
public class RegexTest {
public static void main(String[] args) {
String qString= &sds334232ds &;
String regx= &!|!|@|◎|#|#|(\\$)|¥|%|%|(\\^)|……|(\\&)|※|(\\*)|×|(\\()|(|(\\))|)|_|——|(\\+)|+|(\\|)|§ &;
System.out.println(hasCrossScriptRisk(qString,regx));
* 检查输入的数据中是否有特殊字符
* @param qString 要检查的数据
* @param regx 特殊字符正则表达式
* @return boolean 如果包含正则表达式 &code& regx &/code& 中定义的特殊字符,返回true;
否则返回false
public static boolean hasCrossScriptRisk(String qString, String regx) {
if (qString!=null) {
qString = qString.trim();
Pattern p = pile(regx, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(qString);
return m.find();
}xudong2009 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 url参数包含特殊字符 的文章

 

随机推荐