社区
JavaScript
帖子详情
正则,防止用户恶意输入大量回车2
qfljm
2007-08-08 03:39:59
1.替换字符串所有连续2个以上的空行为一个空行.
2.接着替换所有行中行字符在5个以下,行连续3行以上的部分中的回车为空格
如字符串(以下\n是回车符):
a\n
\n
\n
\n
bbbbbbbbbbbbbb\n
aaa\n
aaa\n
aaa\n
aaa\n
处理后应该是
a\n
\n
bbbbbbbbbbbb\n
aaa aaa aaa aaa
...全文
224
5
打赏
收藏
正则,防止用户恶意输入大量回车2
1.替换字符串所有连续2个以上的空行为一个空行. 2.接着替换所有行中行字符在5个以下,行连续3行以上的部分中的回车为空格 如字符串(以下\n是回车符): a\n \n \n \n bbbbbbbbbbbbbb\n aaa\n aaa\n aaa\n aaa\n 处理后应该是 a\n \n bbbbbbbbbbbb\n aaa aaa aaa aaa
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yifuzhiming
2007-08-08
打赏
举报
回复
限制一下输入长度不OK 了
hbhbhbhbhb1021
2007-08-08
打赏
举报
回复
我下面这个代码可能有漏洞,只是给你个正则的思路.你多测测再改改吧!
<textarea id="textarea1" style="width:400;height:400">
a
bbbbbbbbbbbbbb
aaa
aaa
aaa
aaa
</textarea>
<input type="button" onclick=check()>
<script language=javascript>
function check(){
re=/(\r\n(?=(\r\n+)))+/g
var obj=document.getElementById("textarea1")
var str=obj.value
str=str.replace(re,"\r\n");
re=/\r\n((([^\r\n]{1,5})(\r\n|$)){3,})/g
alert(str.match(re))
obj.value=str.replace(re,function(a,b,c){return "\r\n"+b.split("\r\n").join(" ")+"\r\n"})
}
</script>
dexterfar
2007-08-08
打赏
举报
回复
这样就ok了。
<textarea cols="30" rows="20" id="tr_from">
a
bbbbbbbbbbbbbb
aaa
aaa
aaa
aaa
</textarea>
<div><button onclick="Convert();">Convert</button></div>
<textarea cols="30" rows="20" id="tr_to"></textarea>
<script language="javascript">
var switchKey = true;
var dst_str="";
var blankCount = 0;
var shortLineCount = 0;
var shortLineArr = new Array();
function Convert()
{
var f_str = document.getElementById("tr_from").value;
f_str.replace(/^([\d\D]*?)$/gm,f1);
document.getElementById("tr_to").value = dst_str;
switchKey = true;
dst_str="";
blankCount = 0;
shortLineCount = 0;
shortLineArr = new Array();
}
function f1(a,b)
{
if(!switchKey)
{
switchKey = !switchKey;
return;
}
switchKey = !switchKey;
//alert(b.length);
if (/^\s*$/.test(b))
{
if(shortLineArr.length > 2)
{
dst_str = dst_str + shortLineArr.join(" ") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
else if(shortLineArr.length > 0)
{
dst_str = dst_str + shortLineArr.join("\n") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
blankCount++;
}
else if(b.length < 5 )
{
if(blankCount < 3 && blankCount > 0)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
else if(blankCount >= 3)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
shortLineArr.push(b);
shortLineCount++;
}
else
{
if(blankCount < 3 && blankCount > 0)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
else if(blankCount >= 3)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
shortLineCount=0;
blankCount=0;
if(shortLineArr.length > 2)
{
dst_str = dst_str + shortLineArr.join(" ") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
else if(shortLineArr.length > 0)
{
dst_str = dst_str + shortLineArr.join("\n") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
}
if(!(/^\s*$/.test(b) || b.length < 5))
{
dst_str = dst_str + b + "\n";
}
}
</script>
qfljm
2007-08-08
打赏
举报
回复
没处理第二种情况啊
btbtd
2007-08-08
打赏
举报
回复
<script type="text/javascript">
//<![CDATA[
var str =
[
'a\n'
,'\n'
,'b\n'
,'\n'
,'c\n'
,'\n'
,'\n'
,'\n'
,'d\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'e\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'f\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'g\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'h\n'
].join("");
document.write("str: \n", str, "<hr/>");
document.write("fClearLine(str, 0): \n", fClearLine(str, 0), "<hr/>");
document.write("fClearLine(str, 1): \n", fClearLine(str, 1), "<hr/>");
document.write("fClearLine(str, 2): \n", fClearLine(str, 2), "<hr/>");
document.write("fClearLine(str, 3): \n", fClearLine(str, 3), "<hr/>");
document.write("fClearLine(str, 4): \n", fClearLine(str, 4), "<hr/>");
document.write("fClearLine(str, 5): \n", fClearLine(str, 5), "<hr/>");
document.write("fClearLine(str, 6): \n", fClearLine(str, 6), "<hr/>");
function fClearLine(Source, iProtect, bDebug)
{// shawl.qiu code : return string || void return
var bStr = false;
if(!iProtect) iProtect = 0;
if(Source.constructor==String) Source = [Source], bStr = true;
var sPtr = "[\\s]*?\\n";
var sFianlPtr = fRepeatString(sPtr, iProtect);
var TempAr = ["(\\n", sFianlPtr, ")", "[\\s]*\\n"];
var TempRe = new RegExp(TempAr.join(""), "g");
Source[0] = Source[0].replace(TempRe, "$1");
if(bDebug)
{
document.write("sFianlPtr: ", sFianlPtr, "<br/>");
}
if(bStr) return Source[0];
function fRepeatString(sIpt, iLen)
{// shawl.qiu script
if(!sIpt)return "";
if(!iLen&&iLen!==0) iLen = 2;
iLen -= 0;
return new Array(iLen+1).join(sIpt);
} // end function fRepeatStr
} // end function fClearLine(Source, iProtect, bDebug)
//]]>
</script>
ASP超级链接和HTML函数
正则
表达式 修正版
过滤超级链接 代码如下:Function RegRemoveHref(HTMLstr) Set ra = New RegExp ra.IgnoreCase = True ra.Global = True ra.Pattern = “
]+>(.+?)<\/A>” RegRemoveHref = ra.replace(HTMLstr,”$1″) END Function 过滤所有HTML代码 代码如下:Function RemoveHTML(strHTML) Dim objRegExp, Match, Matches Set objRegExp = New Regexp objReg
【Python】
正则
表达式
在处理文本数据时,无论是验证
用户
输入
、从日志文件中提取特定信息、解析配置文件、进行数据清洗,还是进行复杂的字符串替换和分割,
正则
表达式(Regular Expression,简称 Regex 或 Regexp)都是一个极其强大和灵活的工具。它提供了一种描述文本模式的语言,能够高效地搜索、匹配、提取和操作符合特定模式的字符串。Python 通过内置的 模块提供了完整的
正则
表达式支持。掌握 模块的使用,并深入理解
正则
表达式的匹配原理和高级语法,是 Python 开发者处理文本数据能力的显著提升。在深入 Py
【JavaWeb】
正则
表达式
现实中, 检索是非常常见的,为了加快检索速度, 引出了
正则
表达式,
正则
表达式是一种强大的文本模式匹配工具,可以用来搜索、识别和提取文本中的特定模式.一个
正则
表达式,就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过练习后,就觉得这些复杂的表达式写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成.
【微软技术栈】C#.NET 中的
正则
表达式最佳做法
.NET 中的
正则
表达式引擎是一种功能强大而齐全的工具,它基于模式匹配(而不是比较和匹配文本)来处理文本。 在大多数情况下,它可以快速、高效地执行模式匹配。 但在某些情况下,
正则
表达式引擎的速度似乎很慢。 在极端情况下,它甚至看似停止响应,因为它会用若干个小时甚至若干天处理相对小的
输入
。 本文概述开发人员为了确保其
正则
表达式实现最佳性能可以采纳的一些最佳做法。
网络安全面试题
SQL 注入攻击是一种常见的 Web 应用程序安全漏洞,攻击者通过在 Web 应用程序的
输入
框、搜索框、登陆框等地方注入
恶意
的 SQL 语句,从而获取未授权的访问权限或者窃取敏感数据。攻击者利用注入的 SQL 语句执行
恶意
操作,例如删除、修改、查询数据,甚至可以完全接管数据库服务器的控制权。SQL 注入攻击的原因主要是开发人员没有对
用户
输入
的数据进行足够的过滤和验证,导致
恶意
代码可以轻松地插入到 SQL 语句中。对
用户
输入
的数据进行严格的过滤和验证,确保只有合法的数据可以被插入到 SQL 语句中。
JavaScript
87,996
社区成员
224,708
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章