ASP Form Validation, disallow HTML

Posted on 2009-02-12
Last Modified: 2012-05-06
I have a contactform in ASP which will sent the input to my email and a cc to the users email. There is a memo field in the form, I like to disallow users to use HTML and other scripts. We receive a lot of spam!

Is there a way to rebuild the following code? The name of the memofield is email_memo

Thanks for the response!
<script language="javascript" type="text/javascript">


document.oncontextmenu = function(){return false};

function MM_validateForm() { //v4.0

  if (document.getElementById){

    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);

      if (val) {; if ((val=val.value)!="") {

        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');

          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';

        } else if (test!='R') { num = parseFloat(val);

          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';

          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');

            min=test.substring(8,p); max=test.substring(p+1);

            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';

      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is een verplicht veld!.\n'; }

    } if (errors) alert('Er is iets mis gegaan:\n'+errors);

    document.MM_returnValue = (errors == '');

} }



Open in new window

Question by:hanskoens
    LVL 16

    Accepted Solution

    Try this javascript. I would recomnend removing HTML tags using ASP as well or use Server.HTMLEncode to encode the string before sending the email. Javascript can be disabled in the browser in which case the validation will not work
    <script language='javascript'>
    var regEx=new RegExp("^(?!<[^>]*>).*$");
    function CheckHtml()
    <textarea id="txtBox"></textarea>
    <input type="button" onclick="CheckHtml()" value="Test" />

    Open in new window

    LVL 12

    Expert Comment

    The attached function might be useful for your ASP side.   Simply call the function to remove all HTML and SCRIPT from the variable like below.

    Function stripHTML(strHTML)
      'Convert <BR> to crlf
      strHTML=Replace(strHTML, "<br>", vbcrlf)
      strHTML=Replace(strHTML, "<BR>", vbcrlf)
      strHTML=Replace(strHTML, "<p>", vbcrlf)
      strHTML=Replace(strHTML, "<P>", vbcrlf)
      'Strips the HTML tags from strHTML
      Dim objRegExp, strOutput
      Set objRegExp = New Regexp
      objRegExp.IgnoreCase = True
      objRegExp.Global = True
      objRegExp.Pattern = "<(.|\n)+?>"
      'Replace all HTML tag matches with the empty string
      strOutput = objRegExp.Replace(strHTML, "")
      'Replace all < and > 
      strOutput = Replace(strOutput, "<", "")
      strOutput = Replace(strOutput, ">", "")
      stripHTML = strOutput    'Return the value of strOutput
      Set objRegExp = Nothing
      stripHTML = replace(stripHTML, "&nbsp;", " ")
    End Function

    Open in new window


    Featured Post

    Highfive + Dolby Voice = No More Audio Complaints!

    Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

    Join & Write a Comment

    Suggested Solutions

    I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
    Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
    Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
    This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor ( If you're looking for how to monitor bandwidth using netflow or packet s…

    728 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    21 Experts available now in Live!

    Get 1:1 Help Now