JavaScript正则、错误处理、操作表单

一、正则表达式:用单个字符串描述或者匹配符合特定语句规则的字符串

  一些字符序列组合在一起,可以简单也可以复杂模式的,可以去搜索,可以去替换

二、语法:

  /表达式/修饰符(可选)
 

 var para=/icq/I; //不区分大小写

  使用search( ),replace( ) 去和正则表达式结合使用。

    var str="I'm a Hacker";
    var n=str.search(/hacker/i); //匹配的字符串的索引值
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <p>替换“icq”为“pentest”:</p>
    <button οnclick="myFunction()">点我</button>
    <p id="demo">Visit icq</p>
    <script type="text/javascript">
        function myFunction(){
            var str = document.getElementById('demo').innerHTML;
            var txt = str.replace(/icq/i,"pentest");
            document.getElementById("demo").innerHTML = txt
        }
    </script>
</body>
</html>

  

  修饰符:I 忽略大小写 g 全局匹配 m 多行匹配
三、正则表达式中常用的模式
    [abc] 匹配其中任意一个字符
    [0-9] 匹配0到9任意一个数字

<meta charset="utf-8">
<script type="text/javascript">
    var str="icq4de&_dDe";
    var n=str.search(/[0-9]/);
    document.write(n);
</script>

    (x|y) 查找任意 | 分割的选项
  元字符(有特殊含义的字符):
    \d 数字
    \s 空白字符
    \b 匹配单词边界
    \u XXXX 后跟十六进制 unicode字符
  量词:
    n+ 至少匹配一个n
    n* 匹配 0 个或多个 n
    n? 匹配 0 个或只 1 个 n

var pa=new RegExp();

    该对象定义了属性和方法的的正则表达式

  • test() 它是正则表达式的方法 var para="/test/i";para.test(完整的原始的字符)

    检测字符中是否有我们想要的结果,如果找到,返回true。test和 new结合使用

<meta charset="utf-8">
<script type="text/javascript">
  var str="icq4de&_dDe";
  var n=str.search(/[0-9]/);
  var pa=new RegExp("o"); //实例化的过程、new对象
  document.write(pa.test("test 0 pentesto")); //在pentesto 中找 o
</script>
  • exec()该函数返回一个数组,其中存放匹配的结果(第一个)
<meta charset="utf-8">
<script type="text/javascript">
    var str="icq4de&_dDe";
    var n=str.search(/[0-9]/);
    var pa=new RegExp("o"); //实例化的过程、new对象
document.write(pa.exec("test o pentesto")[0]); //在pentesto 中找 o
</script>

四、JS错误处理

  1、语法:

    try{
    //异常的抛出,可能要出问题的代码,写在这里
      }catch(e){ //抛出异常对象的名字 e.message 这是具体的异常信息
    //异常的处理,针对抛出的问题,需要怎么处理,对应的代码写在这里
      }finally{
    //结束之后的处理,不管是否异常,或者异常怎么处理,都要执行
      }
    throw 语句允许我们自定义错误, throw + 自定义的异常信息
      注意:catch(e){}中的e就是用户自定义的错误,不需要使用e.message

    <meta charset="utf-8">
    <script type="text/javascript">
        var txt="";
        function message() {
            try{
                adddlert("welcome!!");
            }
            catch(error){
                txt="有错误。\n\n";
                txt+="描述:"+error.message+"\n\n";
                txt+="点击确定。\n\n";
                alert(txt);
            }
        }
    </script>
    <input type="button" name="bu" value="点我" οnclick="message()">

  

 

 

 五、操作表单

  1、获取输入框中的数据发送给另一个页面

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script type="text/javascript">
    function check_from() {
      var date=document.forms["myform"]["myname"].value;  
    //获取名称为myform的表单,然后操作名称为myname的输入框
      if (date==null||date=="") {
        alert("请输入名字!");
        return false;
      }
    }
  </script>
</head>
<body>
  <form name="myform" action="deal.php" method="post" onsubmit="return check_from()">
    姓名:<input type="text" name="myname" >
    <input type="submit" value="提交">
  </form>

</body>
</html>

  发送到:deal.php

<?php
echo "<meta charset='utf-8'>";
echo "你的名字:".$_POST["myname"];
?>

  2、获取输入框中的邮箱,发送到另一个页面

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script type="text/javascript">
        function checkform(argument) {
            var x=document.forms["myform"]["email"].value;
            var index_k=x.indexOf("@");
            var index_o=x.indexOf(".");
            if (index_k<1||index_o<index_k+2||index_o+2>=x.length) {
                //@符号前面必须要有内容--->index("@")>=1
                //.后面必须要有内容---->index(".")+1<=x的总长度
                //index(".")-index("@")>=1
                alert("Email格式不合法");
                return false;
            }
        }
    </script>
</head>
<body>
<form name="myform" action="test.php" method="post" onsubmit="return checkform()">
    邮箱:<input type="text" name="email">
    <input type="submit" name="提交">
    
</form>
</body>
</html>

  发送到test.php

<?php
echo "邮箱:".$_POST["email"]
?>

 

转载于:https://www.cnblogs.com/yuanshu/p/11593886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值