2014-03-25 101 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