2014-03-25 40 views
2

上午,ASP經典的正則表達式:字符串URL安全

我試圖創建後續的jQuery的ASP「經典」版本/ javascript函數,以防止在數據庫中輸入惡意代碼。

當用戶類型的產品名稱爲它自動改變permlink P和一個隱藏的輸入字段的HTML值的輸入字段。一旦用戶點擊提交按鈕,我想在輸入數據庫之前在服務器端進行驗證。

$(".item-name").keyup(function() { 
$("p.permlink").empty().html(convertToSlug($(this).val())+".html"); 
$(".permlink-input").empty().val(convertToSlug($(this).val())+".html"); 
}); 


function convertToSlug(Text) 
{ 
return Text 
    .toLowerCase() 
    .replace(/[^\w ]+/g,'') 
    .replace(/ +/g,'-') 
    ; 
} 

我想知道的唯一方法是對keybord上的每個字符使用asp替換函數。

replace(strItem, "<", "") 
replace(strItem, ">", "") 
replace(strItem, "/", "") 
replace(strItem, "\", "") 
... etc etc 

問候 巴蒂爾

+1

爲什麼你不能使用經典的ASP的正則表達式替換,並做你在Javascript中做的一樣? [另一篇文章解釋經典ASP正則表達式(http://stackoverflow.com/questions/6675920/using-classic-asp-for-regular-expression?rq=1) –

+0

嗨傑米,那就是即時通訊後,但我不知道使用正則表達式來做它。 – Shane

+0

@Shane該鏈接提供您需要的所有信息,包括'RegExResults()'功能。您可能想將其修改爲「Test」而不是「Execute()」。 – Lankymart

回答

1

剛剛發現這個博客上的工作方式相同jquery的。 它將字符串轉換爲url/seo。似乎完美地工作。

沒有名稱的博客只是「博客classicasp」信用給出,其中信貸所致。

Function isURL(strURL) 

Dim Slug, re, re2 

'Everything to lower case 
Slug = lcase(strURL) 

' Replace - with empty space 
Slug = Replace(Slug, "-", " ") 

' Replace unwanted characters with space 
Set re = New RegExp 
re.Pattern = "[^a-z0-9\s-]" 
re.Global = True 
Slug = re.Replace(Slug, " ") 

' Replace multple white spaces with single space 
Set re2 = New RegExp 
re2.Pattern = "\s+" 
re2.Global = True 
Slug = re2.Replace(Slug, " ") 

Slug = Trim(Slug) 

' Replace white space with - 
Slug = Replace(Slug," ", "-") 

isURL = Slug 

End Function