社区
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
...全文
260
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写文章
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>
Wireshark DNS流量分析实战:四步法定位
恶意
软件C2通信
本文基于Wireshark开展DNS流量深度分析,提出四步法定位
恶意
软件C2通信:全景扫描与协议统计、DNS查询详情挖掘、主机关联溯源、威胁研判与证据固定。重点涵盖DGA域名识别、DNS隧道检测、异常TTL值分析及着色规则应用等关键技术,强调在明文DNS流量中通过查询频率、域名随机性、记录类型和响应特征发现隐蔽威胁,适用于离线威胁狩猎与事件响应。
恶意
流量分析实战:从SWEET ORANGE EK攻击链到PCAP深度解析
本文以SWEET ORANGE漏洞利用工具包为案例,系统讲解
恶意
流量分析全流程:从攻击链六阶段(重定向、指纹收集、漏洞利用、Shellcode执行、载荷下载、C2通信)出发,结合PCAP文件,使用Wireshark、NetworkMiner、CyberChef等工具进行HTTP会话定位、重定向追踪、混淆JS解码、Shellcode提取及
恶意
载荷导出,并提炼网络层与文件层IoC,构建Snort/YARA检测规则,形成可落地的威胁狩猎方法论。
AI内容护栏为何误判‘橘猫’?解析非
恶意
误判与三层风险模型
本文深入剖析AI内容护栏对中性词(如'橘猫')产生非
恶意
误判的机制,提出三层风险模型:表层扰动(过度敏感匹配)、中层断层(人机语义鸿沟)、深层失焦(治理目标漂移)。详细拆解预处理、双通道安全拦截(静态规则+动态风险模型)及响应策略,并给出基于Phi-3-mini的本地化规避方案,涵盖自定义
输入
过滤器、RCE提示词工程、输出后处理等实操技术,聚焦AI安全治理中的可解释性与可控性问题。
正则
表达式完整知识体系
本文系统构建
正则
表达式完整知识体系,涵盖底层原理(NFA/DFA引擎、零宽特性、贪婪匹配)、核心语法(元字符、量词、分组、断言、修饰符)、跨语言差异(JS/Java/Python/MySQL)、性能优化(回溯灾难根治)及十大生产场景模板(表单校验、数据清洗、内容提取、脱敏、风控等)。强调工程落地规范,区分静态/动态书写形式,明确适用边界与禁用场景,提供可直接复用的高可靠性
正则
方案。
最最常见的面试题-搜索框测试用例
搜索框测试用例设计需考虑多方面。功能测试关注
输入
处理、联想及搜索结果等;界面测试注重不同平台下的显示效果;兼容性测试针对不同系统、浏览器和设备;性能测试考察高负载和低网络情况;安全性测试
防止
恶意
攻击。此外还分享了软件测试学习资源。
JavaScript
87,988
社区成员
224,683
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章