1. C#怎么在文本框中过滤非法字符
把尖括号替换了不就行了
x.replace("<","")
x.replace(">","")
2. C#判断文件名中是否有非法字符 / 蓝讯
最直接的是用 String.Contains(String) 方法直接判断路径字符串中是否包含“/”符。
3. c# 写个非法字符过滤的方法,并且写出如何调用,要实例. 感谢
我这有个现在项目正在用的,整体过滤html的,包括script,主要是为了前台展示和截取html文章用的,不知道你能用到不
//截取字符
public static string replacehtml(string Htmlstring)
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"(\d+);", "", RegexOptions.IgnoreCase);
//Htmlstring = Htmlstring.Replace("<", "");
//Htmlstring = Htmlstring.Replace(">", "");
Htmlstring = Htmlstring.Replace("“", "");
Htmlstring = Htmlstring.Replace("”", "");
Htmlstring = Htmlstring.Replace("—", "");
Htmlstring = Htmlstring.Replace("…", "");
//Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
4. 如何删除这个非法字符文件名的文件啊居然安全模式下也杀不了
在删除某个文件时,系统会给出各种各样的提示,反正就是死活不让删。造成这种情况的原因主要有三种:一是文件正在被系统使用,二是文件名中包含系统无法识别的字符,三是用户权限不够(一般不会有这情况),四是硬盘物理性错误(没有办法只有格那盘)。
我给你说哈前两种的方法
一、基本型
1.分步删除。如果你删除的是一个文件夹,可以尝试先将文件夹中的文件删除,然后再删除该文件夹。还有一种办法是在该文件夹下面新建一个文件,再对文件夹执行删除操作。
2.改名删除。将不能删除的文件或文件夹改名后再删除。
3.结束进程再删除。当你在删除文件时,如果系统提示“文件正在使用”,首先检查一下是否没有退出与被删文件相关的程序,再看看系统进程中是否还有相关进程保留。这种情况常常出现在我们卸载软件后删除软件残留在系统中文件的时候。
4.重启后再删除。
5.换个系统再删除。使用多系统的朋友可以切换到另外一个系统中执行删除操作,这招比较有效。单系统的朋友则可以在DOS下使用RD(删除目录)或delete命令(删除文件)或者进入到安全模式底下进行删除操作。
6.结束掉Explorer进程后再删除。按下Ctrl+Alt+Del键打开任务管理器,切换到“进程”选项卡,结束掉Explorer进程,这时候桌面会丢失,不用着急,运行“文件→新任务”,输入“cmd”后回车打开命令行窗口,进入待删文件所在目 录,用RD或delete命令删除即可。删除完毕后再次运行“文件→新任务”命令,输入“explorer”后回车,桌面又回来了。
7.关闭预览功能再删除。如果你在资源管理器中使用了视频、图片的预览功能,那么在删除此类文件时常常不成功,解决的办法是关闭该功能:Windows XP用户在“开始→运行”中输入“regsvr32 /u shmedia.dll”即可,Windows 2000用户则在资源管理器中的空白处单击鼠标右键,选择“自定义文件夹”选项,会出现自定义文件夹向导,进入到“请选择模板”窗口后,选择其中的“简易”便可以禁止视频预览了。
二、移花接木型
1.覆盖文件再删除。在硬盘的另外区域新建一个和待删文件同名的文件,然后剪切并覆盖待删文件,最后再删除该文件。
2.请常用软件“兼职”删除。我们可以使用Winrar、FlashFXP、Nero、ACDSee来删除顽固文件,这种方法往往有奇效。使用方法非常简单,以FlashFXP为例,只需在本地目录中浏览到待删文件,对其执行删除操作即可。
注意:使用Winrar来删除文件的方法跟其它软件不同,步骤如下:右键单击待删除文件或者文件夹,选择“添加到档案文件”菜单,在谈出窗口中勾选“存档后删除源文件”,单击“确定”,这样Winrar在创建压缩文件的同时,也会帮我们删除顽固的文件,我们只 需要将创建的压缩文件删除即可。
3.在别的机器上删除。如果你处于局域网中,可以尝试将待删文件所在的文件夹的属性设置为共享,并赋予读写权限,然后通过网上邻居或在所在的局域网内的其它的电脑上打开文件夹,执行删除操作。另外如果你电脑中安装了FTP服务器,我们还可以试试从FTP登录 本机,然后删除待删文件。
4.使用专业删除软件。大名鼎鼎的PC Tools这款小软件可以删除几乎所有“顽固”软件。运行软件后,先按任意键进入软件的主界面,然后按下F10并切换选中待删文件,按下D键并确认操作即可删除。
5. c语言保存文件到指定的路径和文件名
fp=fopen(filename,"wb");
里的filename就表示了文件的路径及文件名,所以要把输入的文件名和文件路径拼接起来,计算出这个filename
最好过滤一下别让路径和文件名中有非法字符,比如:\/+<>什么的。
scanf也限制一下长度。
scanf("%19s",filename);
scanf("%19s",path);
参考如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch, filename[20], path[20],buffer[40];
printf("Enter the file name: ");
scanf("%s",filename);
printf("Enter the path: ");
scanf("%s",path);
sprintf(buffer, "%s\\%s", path,filename);
printf("\nto end input ,press Ctrl+Z in newline,then ENTER:\n");
if((fp=fopen(buffer,"wt+"))==NULL)
{
printf("no such path, \nstrike any key exit!");
getch();
exit(1);
}
while ((ch=getchar())!=-1) ch=fputc(ch,fp);
fclose(fp);
printf("==================================\n\n");
printf("file path \"%s\" \nfile name \"%s\":\nand its content:\n",path,filename);
fp=fopen(buffer,"rt");
while ((ch=fgetc(fp))!=-1) putchar(ch);
fclose(fp);
return 0;
6. c++怎样屏蔽非法字符
试试以下代码吧(原创),以下代码支持退格:
#include<conio.h>
#include<stdio.h>
#define H 100
main()
{
int i;
char a[H];
int c;
for(i=0;;)
{
c=getch();//不回显地接受字符
if('0'<=c&&c<='0'+9){putchar(c);a[i++]=c;}//选择性地得到字符并回显
if(c==8&&i>0){i--;putchar(8);putchar(' ');putchar(8);}//退格处理
if(c==13||i==H-1){a[i++]='\0';break;}//字符串结尾处理
}
printf("\n%s\n",a);//输出字符串
}
7. c语言中非法字符有哪些
首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。
A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。
B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。
D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。
8. c#判断文件名中是否有非法字符和去掉文件
public string invalidFileName(string fileName = "", string repStr = "_"){
// 例如: fileName = "文件/名称"
foreach (char invalidChar in Path.GetInvalidFileNameChars())
{
fileName = fileName.Replace(invalidChar.ToString(), repStr);
}
//结果:文件_名称
return fileName;
}
{
//剔除路径字符串中非法的字符
//例如 path = "路径ds"
foreach (char invalidChar in Path.GetInvalidPathChars())
{
path = path.Replace(invalidChar.ToString(), repStr);
}
//结果:路径_ds
return path;
}
原文地址:网页链接
9. 求助,C#上传文件时错误:路径中具有非法字符
1.windows的目录中允许出现的字符是有限定的,不允许出现的字符可以通过Path..GetInvalidFileNameChars()得到,下面是过滤目录中非法字符的方法:
stringillegal=""M"\a/ry/h**ad:>>a\/:*?"|li*tt|le||la"mb.?";
stringinvalid=newstring(Path.GetInvalidFileNameChars())+newstring(Path.GetInvalidPathChars());
foreach(charcininvalid)
{
illegal=illegal.Replace(c.ToString(),"");
}
2.也可以使用正则表达式来做替换,如下代码:
stringillegal=""M"\a/ry/h**ad:>>a\/:*?"|li*tt|le||la"mb.?";
stringregexSearch=newstring(Path.GetInvalidFileNameChars())+newstring(Path.GetInvalidPathChars());
Regexr=newRegex(string.Format("[{0}]",Regex.Escape(regexSearch)));
illegal=r.Replace(illegal,"");