只能输入英文、数字和下划线,下划线不能在首尾,最小一位,最大长度为20位,下面是我写的,执行不出来,不知什么问题!!var num = /^[0-9a-zA-Z]{1}$|^[0-9a-zA-Z]+[0-9a-zA-Z_]{0,18}[0-9a-zA-Z]+$/;另外再问一下正则的格式问题,下面三个前两个是JS里的写法,后一个是C#后台的写法,我不知道正则什么时候前后都得加“/”,什么时候可以不加,写的位置不同(前后台),写法也不一样吗?下面第三个写法里的那@是干嘛的,可以删除吗?
clipboardData.setData('text', clipboardData.getData('text').replace(/[^\d]/g, ''));
var num = /^[0-9a-zA-Z]{1}$|^[0-9a-zA-Z]+[0-9a-zA-Z_]{0,18}[0-9a-zA-Z]+$/;
reg = new Regex(@"^[0-9a-zA-Z]{1}$|^[0-9a-zA-Z]+[0-9a-zA-Z_]{0,18}[0-9a-zA-Z]+$");

解决方案 »

  1.   

    SORRY!没看清楚,改下<script language="javascript">
    var re=/^[0-9a-z]([0-9a-z_]{0,18}[0-9a-z])?$/i
           var str1="a"
    var str2="_"
    var str3="fddf_00"
    var str4="554gg_"
    alert(re.test(str1))
    alert(re.test(str2))
    alert(re.test(str3))
    alert(re.test(str4))</script>
      

  2.   

    var regex = /^[0-9a-zA-Z([0-9a-zA-Z_]{0,18}[0-9a-zA-Z])?$/i
      

  3.   

    |^[0-9a-zA-Z]+[0-9a-zA-Z_]{0,18}[0-9a-zA-Z]+
    这是或者的后面一部分,可以超过20位了啊