我想要做的是清理模糊输入字段。我的模糊代码功能完全正常,但我无法使正则表达式正常工作。我试图允许的所有字符除了任何换行符之外都能正常工作。我已经尝试过包含/ s,/ r和/ n的不同变体和组合。如何忽略/允许多个换行符正则表达式替换正则表达式
我这样做是因为我想防止尽可能多的字符不属于描述性输入字段。我正在使用实体linq进行数据库输入,这应该可以保护我免受sql注入攻击,但我仍然想要限制字符以提高安全性。我允许撇号,但这应该是下面正则表中列出的允许字符唯一的潜在威胁。
一旦我得到了正则表达式,我也将使用相同的代码块替换粘贴。
这是我恢复回来的JavaScript方法。
function CleanSentenceInput(AlphaNumString) {
input = AlphaNumString;
var CleanInput = input.replace(/[^a-z0-9\s.,;:'()-]/gi, '');
CleanInput = myTrim(CleanInput);
return CleanInput;
}
有没有办法允许任何数量的换行符通过修改此替换正则表达式?
测试输入:
aaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
cccccccccccccccc
cccccccccccccccc
测试结果:
aaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
预期结果:
aaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
cccccccccccccccc
cccccccccccccccc
更新**事实证明,我所用的装饰功能被移除线路中断。下面是函数:
坏微调功能:
function myTrim(x) {
return x.replace(/^\s+|\s+$/gm, '');
}
有没有办法解决这个问题的正则表达式,以便它仍然之前和之后的替代空格,而不是里面的内容?
更新**
良好的微调功能:
function myTrim(x) {
return x.replace(/^\s+|\s+$/g, '');
}
它在哪里?因为我已经尝试过了,它仍然会得到完全相同的测试结果。 –
我认为问题出在'myTrim'上。 [正则表达式不会引起任何问题。](https://regex101.com/r/hG0qZ0/1) –
我将发布myTrim函数来显示它的功能,我不认为它会除去开头和结束,但我愿意尝试删除测试。你稍等一会儿。 –