精华内容
下载资源
问答
  • 判断一个url是否合法

    千次阅读 2018-09-12 11:19:00
    public class Tools { private static String pattern = "^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+$"... * 判断 url 是否合法 */ public static b...
    public class Tools {
        private static String pattern = "^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+$";
    
        /**
         * 判断 url 是否合法
         */
        public static boolean isUrl(String url) {
            Pattern httpPattern = Pattern.compile(pattern);
            if (httpPattern.matcher(url).matches()) {
                return true;
            }
            return false;
        }
    }
    展开全文
  • js判断一个手机号是否合法

    千次阅读 2018-01-08 20:47:31
    js判断一个手机号是否合法 function isMobileNumber(phone) { var flag = false; var message = ""; var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[4-9]{1})|(18[0-9]{1})|(199))+\...

    js判断一个手机号是否合法

    function isMobileNumber(phone) {
        var flag = false;
        var message = "";
        var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[4-9]{1})|(18[0-9]{1})|(199))+\d{8})$/;
        if (phone == '') {
            // console.log("手机号码不能为空");
            message = "手机号码不能为空!";
        } else if (phone.length != 11) {
            //console.log("请输入11位手机号码!");
            message = "请输入11位手机号码!";
        } else if (!myreg.test(phone)) {
            //console.log("请输入有效的手机号码!");
            message = "请输入有效的手机号码!";
        } else {
            flag = true;
        }
        if (message != "") {
            // alert(message);
        }
        return flag;
    }


    展开全文
  • 判断一个域名是否合法

    千次阅读 2019-09-28 00:55:35
    生活中我们肯定会见到很多域名(domain name,简称domain)。域名有很多形式,以句点(.)作为分隔符。... 常见的域名形式 ...1. 由两部分组成,例如baidu.com(百度),csdn.net(CSDN),...2. 由多部分组成...

    生活中我们肯定会见到很多域名(domain name,简称domain)。域名有很多形式,以句点(.)作为分隔符。这里说的域名是纯域名,不是网址,不包括http://(或https://),也不带斜线。

     

    常见的域名形式

     

    1. 由两个部分组成,例如baidu.com(百度),csdn.net(CSDN),wikipedia.org(维基百科)。

     

    2. 由多个部分组成,例如en.wikipedia.org(英文维基百科),support.google.com(Google帮助页面),info.cern.ch(世界上的第一个网站),acm.hdu.edu.cn(HDU Online Judge)。

     

    共同特征

     

    1. 最后一部分是顶级域名(top-level domain),顶级域名不能随便取,只能是有限的顶级域名之一。

     

    2. 域名中只能包含数字、字母和连字符(好像每个域名要求还不同)。

     

    判断方法

     

    以'.'为分隔符,将域名分成几个部分,最后一部分必须是合法的顶级域名,其它部分不得包含非字母、数字和连字符。实际上还可以包含中文(Unicode字符),这里不考虑。

     

    代码

     

    由于域名众多,直接写在代码中不方便,于是将域名存在文件里(不带.号):

     

    com org net int edu gov mil arpa
    ac ad ae af ag ai al am an ao aq ar as at aw ax az
    ba bb bd be bf bg bh bi bj bl bm bn bo bq br bs bt bv bw by bz
    ca cc cd cf cg ch ci ck cl cm cn co cr cu cv cw cx cy cz
    de dj dk dm do dz
    ec ee eg eh er es et eu
    fi fj fk fm fo fr
    ga gb gd ge gf gg gh gi gm gn gp gq gr gs gt gu gw gy
    hk hm hn hr ht hu
    id ie il im in io iq ir is it
    je jm jo jp
    ke kg kh ki km kn kp kr kw ky kz
    la lb lc li lk lr ls lt lu lv ly
    ma mc md me mf mg mh mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz
    na nc ne nf ng ni nl no np nr nu nz
    om
    pa pe pf pg ph pk pl pm pn pr ps pt pw py
    qa
    re ro rs ru rw
    sa sb sc sd se sg sh si sj sk sl sm sn so sr ss st su sv sx sy sz
    tc td tf tg th tj tk tl tm tn to tp tr tt tv tw tz
    ua ug uk um us uy uz
    va vc ve vg vi vn vu
    wf ws
    ye yt
    za zm zw

     

    把文件命名为domains.txt,并且可能需要把它添加到PYTHONPATH。

     

    Python代码:

     

    def isValidDomainChar(ch):
        return ch.isalpha() or ch.isdigit() or ch == '-'
    
    def isValidDomainSect(sect):
        return len(sect) > 0 and all(isValidDomainChar(ch) for ch in sect)
    
    def areValidDomainSects(sects):
        return all(isValidDomainSect(sect) for sect in sects)
    
    def isValidDomain(domain):
        sects = domain.split('.')
        global TLDS
        return areValidDomainSects(sects[0:-1]) and sects[-1] in TLDS
    
    def main():
        with open('domains.txt', 'r') as f:
            import re
            global TLDS
            TLDS = re.split(' |\n', f.read())
        domain = input('Enter a domain: ')
        while domain != '':
            if isValidDomain(domain):
                print('Domain valid.')
            else:
                print('Domain invalid.')
            domain = input('Enter a domain: ')
    
    TLDS = []
    if __name__ == '__main__':
        main()
    

     

    注意需要将domains.txt所在目录添加到PYTHONPATH。另外,顶级域名有很多,domains.txt里只列出了一部分,还有很多。具体的可以在Wiki上搜“Top-level domains”。

    转载于:https://www.cnblogs.com/collectionne/p/6979510.html

    展开全文
  • leetcode题目https://leetcode.com/problems/validate-binary-search-tree/,判断一个二叉树是不是合法的二分查找树,这个题目应该说遇到多次了,然而在写的时候还是费了一番时间,而且写了一个十分拙劣的算法(在...

    leetcode题目https://leetcode.com/problems/validate-binary-search-tree/,判断一个二叉树是不是合法的二分查找树,这个题目应该说遇到多次了,然而在写的时候还是费了一番时间,而且写了一个十分拙劣的算法(在本文最后,不做解释)。

    参考leetcode的discuss,遇到了两个比较好的解法,一个是递归(同样是递归,人家的就很简单),另一个非递归。

    先看递归,递归的话采用自顶向下的方式比较简单,自顶向下,也就是自父节点向子节点传递范围要求(子节点不能大于某个值,不能小于某个值),比自底向上要方便的多,看代码,采用Long.MIN_VALUE是防止根节点是Integer.MIN_VALUE,那就通不过了:

        /* 判断一个二叉树是不是合法的二分查找树的简单的递给方法,学习
         * 采用自顶向下的遍历方式,对于每个节点,检查顶部传来的范围要求,
         * 要求是指:对于左子树,父节点的值就是最大值,对于右子树,父节点的值就是最小值
         */
        public boolean isValidBST(TreeNode root) {
        	
        	//初始的时候,对根节点没有范围要求
            return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
        }
        
        public boolean isValidBST(TreeNode root, long minVal, long maxVal) {
            if (root == null) return true;
            
            //检查是否满足根节点的范围要求
            if (root.val >= maxVal || root.val <= minVal) 
            	return false;
            //修改对子节点的要求,对于左子树,本节点的值就是最大值,对于右子树,本节点的值就是最小值
            return isValidBST(root.left, minVal, root.val) && isValidBST(root.right, root.val, maxVal);
        }

    再看非递归,非递归的方式比递归的方式速度要慢,但是很明显非递归能有效的减小栈空间的使用量,防止栈溢出。思路是使用中序非递归遍历(这里有二叉树的非递归中序遍历),跟中序非递归遍历基本完全一致,就是保存了一个前驱节点,并在每次访问一个节点的时候更新前驱节点,如果前驱节点的值大于等于当前节点,那就是非二分查找树,因为二分查找树的中序遍历是一个递增序列。看代码:

    	/*判断一个二叉树是不是合法的二叉树的非递归遍历
    	 * 采用中序遍历,并保存一个前驱节点,这样在每检查一个
    	 * 节点的时候,就跟前驱节点对比,如果比前驱节点小(或者等于)
    	 * 就表示不合法
    	 */
        public boolean isValidBST(TreeNode root){  
            Stack<TreeNode> stack = new Stack<TreeNode>();  
            
            //设置前驱节点
            TreeNode pre = null;
            
            while(root!=null || !stack.isEmpty()){  
                while(root!=null){      //将当前节点,以及左子树一直入栈,循环结束时,root==null  
                    stack.push(root);  
                    root = root.left;  
                }  
                root = stack.pop();  
                
                //比较并更新前驱,与普通遍历的区别就在下面四行
                if(pre!=null && root.val<= pre.val){
                	return false;
                }
                pre = root;
                
                root = root.right;  //访问右子树  
            } 
            
            return true;  
        }  

    我的拙劣的算法:

        public boolean isValidBST(TreeNode root) {
            
        	if(root==null){
        		return true;
        	}
        	int[] minMax = new int[2];
        	
        	return minMax(root, minMax);
        }
        
        
        public boolean minMax(TreeNode root,int[] minMax){
        	if(root!=null&&root.left==null&&root.right==null){
        		minMax[0] = root.val;
        		minMax[1] = root.val;
        		return true;
        	}
        	
        	int[] left = null;
        	int[] right = null;
        	
        	if(root.left!=null){
        		left = new int[2];
        		boolean bin = minMax(root.left, left);
        		if(!bin){
        			return false;
        		}
        	}
        	if(root.right!=null){
        		right = new int[2];
        		boolean bin = minMax(root.right,right);
        		if(!bin){
        			return false;
        		}
        	}
        	
        	if((left==null||left!=null&&root.val>left[1])
        			&&(right==null||right!=null&&root.val<right[0])){
        		
        		if(left!=null&&right!=null){
        			minMax[0] = Math.min(Math.min(left[0], right[0]),root.val);
        			    			minMax[1] = Math.max(Math.max(left[1], right[1]),root.val);
    
        		}else if(left!=null){
        			minMax[0] = Math.min(left[0],root.val);
        			minMax[1] = Math.max(left[1],root.val);
        		}else{
        			minMax[0] = Math.min(right[0],root.val);
        			minMax[1] = Math.max(right[1],root.val);  			
        		}
        		return true;
        	}
        	
        	return false;
        }




    展开全文
  • 判断一个字符串是否一个合法日期 public static boolean isDate(String str) { boolean flag = true;  // 判个字符串是否是 yyyy/MM/dd 格式的日期 SimpleDateFormat sdf= new SimpleDateFormat("yyyy/MM/dd")...
  • python 判断一个IP地址是否合法

    千次阅读 2016-07-24 15:42:04
    最近在看tornado的源码,遇到了 is_valid_ip(ip) 这个函数,该函数用来判断一个IP地址是否合法,支持IPv4和IPv6,想到自己前阵子也遇到过这个问题,看着源码的解决方法要比自己的好多了,就摘抄下来,以留备用 ...
  • 如何判断一个字符串是否合法的IP地址。 import java.util.Scanner; public class MyTest { public static void main(String[] args) { /* * 如何判断一个字符串是否合法的IP地址。 */ Scanner sc=...
  • 判断一个字符串是否合法标识符

    万次阅读 2018-03-08 11:07:23
    判断一个字符串是否合法标识符 第一个字母:只能是字母,_,$ 其他字母:字母,_,$,数字(数字不能作为第一个字母) 注意:字母 = 英文字母 +汉语中的汉字等等许多其他语言中的文字 ========...
  • 题目描述:给出一个字符串,判断是不是一个合法的IP地址,用代码实现。#include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class solution//默认采用ipv4的点分十进制,如255....
  • 做笔试题目的时候,发现有一些试卷有给定一个进栈序列让你判断下列哪个是合法/不合法的出栈序列。 通常进栈的序列不是升序如{1,2,3,4,5,6}就是{6,5,4,3,2,1},当然其他的我好像就没有看到了,如果遇到了...
  • 判断一个字符串是否合法IP地址

    千次阅读 2015-08-31 15:31:50
    思路:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在0~~255之间,然后判断是否合法。 #include "stdafx.h" #include #include using namespace std; bool IsValidIp(char* str) {...
  • 【面试题】算法题:判断一个IP是否合法 https://blog.csdn.net/u014259820/article/details/78833196
  • 一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ...__Author__:沂水寒城 功能:判断一个字符串是否合法IP地址 ... 判断一个字符串是否合法IP地址
  • * 判断是不是一个合法的电子邮件地址 * * @param email * @return */ public static boolean isEmail(String email) { if (email == null || email.trim().length() == 0) return fa...
  • 写程序判断一个IP地址是否合法

    千次阅读 2019-02-26 20:51:14
    package Test; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Scanner; public class Test{ public static void main(String[] args){ Scanner scan=new Scanner(System.in...
  • * 判断一个序列是否是二叉排序树中的一个合法的查找序列 * 实验目的: * 掌握二叉排序树查找过程及其算法设计 * 实验内容: * 设计程序,构造一颗二叉排序树bt,判断一个序列a是否是 * 二叉排序树bt中的一个合法的查找...
  • 判断一个序列是否是栈的合法序列

    千次阅读 2016-11-12 20:53:14
    判断一个序列是否是栈的合法序列 本文学习自文琼的blog 哈哈,本弱鸡第一次写自己的博客。这个是我们数据结构老师留的课后实验,没写出来。。。所以百度了一下下。。发现蛮好玩的,就写写玩咯。 什么是栈的...
  • 写一个算法判断某个字符串是不是一个合法的IP地址。
  • ![图片说明](https://img-ask.csdn.net/upload/201610/13/1476352979_504851.png) 请问miniui中该怎么判断一个字符串是不是ip地址
  • php 判断一个变量是否合法的json

    千次阅读 2018-11-05 15:53:12
    文章目录场景分析解决 场景 form表单中有一项参数是json类型存储的...官方文档 找到了一个解决方案 解决 function json_validate($string) { if (is_string($string)) { @json_decode($string); return (json_...
  • 最近开发公司的项目,一直找不到合适的正则表达式可以判断一个字符串是否可以转成日期,今天发现可以采用SimpleDateFormat类的parse方法进行判断,如果转换不成功,就会出现异常, 具体代码如下: 1 public ...
  • 判断一个字符串是否合法的JSON字符串

    万次阅读 热门讨论 2018-01-31 13:58:34
    判断一个字符串是否合法的JSON字符串 pom.xml &lt;dependency&gt; &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;fastjson&lt;/artifactId&gt; ...
  • Java 判断一个字符串是否合法日期

    万次阅读 2018-03-09 17:32:20
    判断字符串像“2018-02-30”这样的日期是不是正确合理的日期 //假设传入的日期格式是yyyy-MM-dd HH:mm:ss, 也可以传入yyyy-MM-dd,如2018-1-1或者2018-01-01格式 public static boolean isValidDate(String ...
  • import java.util.HashMap; ... * 判断括号是否匹配 * @author wwq * */ public class StackMatch { public static Boolean KhMatch(String str) { Stack<String> matchStack=new ...
  • 项目中使用了lua,需要判断一个字符串是否是正确的ip格式.记录下写出的判断函数.合法返回原ip字符串,不合法返回false --判断ip是否合法 function JudgeIPString(ipStr) if type(ipStr) ~= "string" then return ...
  • 笔试1--判断一个IP地址是否合法

    万次阅读 2018-03-23 22:07:57
    互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址。IP地址长32bit。这些32位的地址通常写成四个十进制的数,其中每个数对应一个字节。这种表示方法也称“点分十进制”。五类IP不同的网络地址格式为如下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 279,906
精华内容 111,962
关键字:

如何判断一个网站是否合法