我想要做的是清理模糊輸入字段。我的模糊代碼功能完全正常,但我無法使正則表達式正常工作。我試圖允許的所有字符除了任何換行符之外都能正常工作。我已經嘗試過包含/ 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函數來顯示它的功能,我不認爲它會除去開頭和結束,但我願意嘗試刪除測試。你稍等一會兒。 –