解决方案 »

  1.   

    3.<script>
    function regInput(obj, reg, inputStr)
    {
    var docSel = document.selection.createRange()
    if (docSel.parentElement().tagName != "INPUT") return false
    oSel = docSel.duplicate()
    oSel.text = ""
    var srcRange = obj.createTextRange()
    oSel.setEndPoint("StartToStart", srcRange)
    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
    return reg.test(str)
    }
    </script>小写英文:<xmp style= "display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^[a-z]*$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^[a-z]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[a-z]*$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled"
    ><br>大写英文:<xmp style= "display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^[A-Z]*$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^[A-Z]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[A-Z]*$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled">
    <br>任意数字:<xmp style="display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^[0-9]*$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^[0-9]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[0-9]*$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled"
    ><br>限2位小数:<xmp style="display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^\d*\.?\d{0,2}$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^\d*\.?\d{0,2}$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^\d*\.?\d{0,2}$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled"
    > 如: 123.12<br>
    日  期:<xmp style="display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled"
    > 如: 2002-9-29<br>任意中文:<xmp style="display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^[\u4E00-\u9FA5]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[\u4E00-\u9FA5]*$/,event.dataTransfer.getData('Text'))"
    ><br>部分英文:<xmp style="display:inline"> </xmp>
    <input onkeypress= "return regInput(this,/^[a-e]*$/,String.fromCharCode(event.keyCode))"
    onpaste = "return regInput(this,/^[a-e]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[a-e]*$/,event.dataTransfer.getData('Text'))"
    style="ime-mode:Disabled"
    > 范围: a,b,c,d,e<br>部分中文:<xmp style="display:inline"> </xmp><script language=javascript>
    function checkChinese(oldLength, obj)
    {
    var oTR = window.document.selection.createRange()
    var reg = /[^一二三四五六七八九十]/g
    oTR.moveStart("character", -1*(obj.value.length-oldLength))
    oTR.text = oTR.text.replace(reg, "")
    }
    </script>
    <input onkeypress="return false" onkeydown="setTimeout('checkChinese('+this.value.length+','+this.uniqueID+')', 1)"
    onpaste = "return regInput(this,/^[一二三四五六七八九十]*$/,window.clipboardData.getData('Text'))"
    ondrop = "return regInput(this,/^[一二三四五六七八九十]*$/,event.dataTransfer.getData('Text'))"
    > 范围: 一二三四五六七八九十<br>
      

  2.   

    【个人意见,仅供参考】关于问题一:提供一个笨方法,在数据库中放两个content的字段,一个用来保存带html标记的内容,另一个保存过滤掉html标记的内容(过滤工作在提交时完成,过滤的方法可以找一些现成的“html标记过滤”之类的代码)。
    搜索时使用“不带html标记的content字段”,显示时使用“带html标记的content字段”。关于问题二:是否有缺陷应该依据你的网站内容而定:如果你是做搜索引擎,或者是一些专业技术文章之类的,则应该算是有缺陷的,因为无法满足用户的需求。 而如果是文学类的网站或者是新闻公告之类的内容,则这样做没有太大的问题。关于问题三:不妨到Baidu 或google上面找一找。