精华内容
下载资源
问答
  • 合法性”之后的“合理性”建设:不同医疗场域医务社会工作创新思考.rar
  • 合法性”之后的“合理性”建设:不同医疗场域医务社会工作创新思考.pdf
  • 判断日期合法性

    千次阅读 2016-03-18 13:28:16
    这边写一个判断一个日期的合法性,比如是没有2008-02-31,aaaa-03-89等都不合法的,这个Datetil在java中可以解决这样的一个问题,如果还有缺陷请相告,感谢! import java.util.*; import java.util.regex.*; ...

    这边写一个判断一个日期的合法性,比如是没有2008-02-31,aaaa-03-89等都不合法的,这个Datetil在java中可以解决这样的一个问题,如果还有缺陷请相告,感谢!

    import java.util.*;
    import java.util.regex.*;
    import java.text.*;
    
    /** 这个是按照楼主的描述使用通过判断字符验证时间合法性 */
    public class DateUtils2 {
    
    	private static void test(String stringdate){
    		System.out.println("输入[" + stringdate + "]是否合法:" + validate(stringdate));
    	}
    	
    	/** 判断主方法 */	
    	public static boolean validate(String dateString){
    		//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)
    		Pattern p = Pattern.compile("\\d{4}+[-]\\d{1,2}+[-]\\d{1,2}+");
    		Matcher m = p.matcher(dateString);
    		if(!m.matches()){	return false;} 
    		
    		//得到年月日
    		String[] array = dateString.split("-");
    		int year = Integer.valueOf(array[0]);
    		int month = Integer.valueOf(array[1]);
    		int day = Integer.valueOf(array[2]);
    		
    		if(month<1 || month>12){	return false;}
    		int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    		if(isLeapYear(year)){
    			monthLengths[2] = 29;
    		}else{
    			monthLengths[2] = 28;
    		}
    		int monthLength = monthLengths[month];
    		if(day<1 || day>monthLength){
    			return false;	
    		}
    		return true;
    	}
    	
    	/** 是否是闰年 */
    	private static boolean isLeapYear(int year){
    		return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
    	}
    }


    主函数这边直接这样调用就可以测试日期的合法性:

    	//测试代码 begin
    	public static void main(String[] s){		
    		//以下是测试代码		
    		DateUtils2.test("20099-1-1");		
    		DateUtils2.test("20099-100-1");		
    		DateUtils2.test("20099-1-100");		
    		DateUtils2.test("2009-1-1");		
    		DateUtils2.test("2009-1-31");		
    		DateUtils2.test("2009-2-28");		
    		DateUtils2.test("2009-2-29");		
    		DateUtils2.test("2008-2-29");	
    	}



    展开全文
  • W3C 校验XML的工具,XML校验工具,可以用来进行XML合法性检验
  • 合法性检查

    千次阅读 2016-12-07 11:21:29
    对用户输入的数据进行合法性检查,避免错误非法的数据进入数据库,这是业务系统最常见的需求。
    

    任务背景

           对用户输入的数据进行合法性检查,避免错误非法的数据进入数据库,这是业务系统最常见的需求。程序员在实现合法性检查功能时,比较常见的两种做法:
          1、在javascript中写合法性检查函数,从而在网页中实现校验逻辑

          2、在后台的服务器程序中,对接收到的前端返回的数据进行合法性检查,合法则入库,不合法则返回错误信息
           这两种实现方法各有利弊。对于比较简单的合法性检查,显然在前端写javascript脚本更快,因为脚本维护方便,不用编译和重新发布应用。但是前端写脚本无法实现比较复杂的校验逻辑,比如,需要和数据库中的数据进行合法性校验等。
    服务器端程序进行合法性检查,弊端在于比较麻烦,如果校验逻辑很简单,就不合适;其优点在于容易写出复杂的校验逻辑。

    面临困难

            在实际业务中,用户对合法性检查的要求也五花八门,有些合法性检查要求输入时焦点移开的时候就立即检查,这种合法性检查只能用javascript来实现;有些用户要求提交时进行检查,检查不合法弹出警告,如果用户不接受警告仍旧要提交,也允许提交入库;还有些用户要求多个填报表一起填写,在表间进行合法性检查;也有些要求输入的数据和数据库中已经存在的数据进行合法性检查,避免用户输入前后矛盾的数据等等。
            如此五花八门的需求,单用脚本或者单用服务器端的程序均无法完全满足,必须两者结合起来。同时,由于需求的不同,往往导致不同的报表要写不同的合法性检查程序,而不同的Javascript脚本势必导致jsp不一样,从而导致用户为每一个报表写一个Jsp.
             于是维护的工作量大大增加!
      润乾报表在设计之初,就考虑到了这些细节,它提出了一个完整的解决方案,可以实现上述的所有功能,而且不需要重复写不同的Jsp,可以用一个jsp实现所有的报表。

    实现步骤

    1、 设计一个填报表,并在报表中写入合法性检查逻辑
    2、 设置合法性检查为提交时检查还是即时检查
    3、 设置合法性检查不通过时是否允许强行提交
    4、 如果需要和数据库中已有的数据进行合法性检查,则在报表中写入表达式读取数据库中的数据,并在合法性检查逻辑中体现
    5、 发布

    效果演示

    展开全文
  • 对传统的工作流合理性验证方法进行了阐述, 分析了这些方法的优缺点, 着重针对国内外学者用Petri网对工作流合理性验证方法进行综述, 分析其特点, 指出了工作流的合理性验证的发展方向。
  • 出栈序列的合法性

    千次阅读 2016-04-10 10:51:51
    问题描述:对于一个进栈序列其出栈序列存在多种合法的可能情况。例如:入栈序列为1,2,3,4,5时,而对于出栈序列5,4,3,2,1、1,3,2,5,4、3,5,4,2,1等等这些都是一个合法的出栈序列,但是对于3,5,2,4,1、5,3,4,2,1等这种...

    问题描述:对于一个进栈序列其出栈序列存在多种合法的可能情况。例如:入栈序列为1,2,3,4,5时,而对于出栈序列5,4,3,2,1、1,3,2,5,4、3,5,4,2,1等等这些都是一个合法的出栈序列,但是对于3,5,2,4,1、5,3,4,2,1等这种出栈序列则是非法的序列,因为其违背了栈的特性(先进后出或者后进先出)。



    ★对于1,2,3,4,5这样的进栈序列,我们最常想到的出栈序列为5,4,3,2,1。这是因为将其一次性逐个入栈,然后逐个弹出得到的出栈序列。然而在这里我们并未规定所有元素入栈后才相继弹出,所以这里的序列就很多很多了。

    比如:以上述一个合法的出栈序列1,3,2,5,4为例: 再比如:以上述一个非法的出栈序列3,5,2,4,1为例:

    ①栈为空,元素1入栈,然后弹出。 ①栈为空,元素1,2,3入栈,元素3弹出(此时栈内保留压入元素1,2)。

    ②元素2,3入栈,元素3,2分别弹出。 ②元素4,5入栈,此时栈内为1,2,4,5,然后元素5出栈(栈内剩余元素1,2,4)。

    ③元素4,5入栈,元素5,4分别弹出,得到该合法序列1,3,2,5,4。 ③此时要让元素2出栈,但是此时滞留在栈内的栈顶元素为4,所以该序列非法。


    ①在此我们先来看看数组的实现:

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int i, j, k;
    	int temp;				//存放第一个可能比s[i]小的数
    	int num = 0;
    	int flag1,flag2;			//两个标志位,一个标记存在比s[i]小的数,另一个为标记序列的合法性
    	cin >> num;
    	
    	int *s = new int[num]; 			//动态开辟数组,注意结束时的回收(delete[] s) 
    	for (i = 0; i < num; i++)
    		cin >> s[i];
    	for (i = 0; i < num; i++)		//寻找是否存在比s[i]小的数
    	{
    		flag1 = 0;
    		flag2 = 0;
    		for (j = i + 1; j < num; j++)
    			if (s[j]<s[i])		//如果存在,则将其放入到temp变量中,并将flag1标志位置为1
    			{
    			temp = s[j];  
    			flag1 = 1;
    			break;
    			}
    		if (flag1 == 1)			//在标志位为1的前提下,继续寻找是否仍存在比s[i]小的数,并且比temp小的数,存在则不断更新temp的值
    			for (k = j + 1; k < num; k++)
    				if (s[k]<s[i]) 
    					if (s[k]<temp) 
    						temp = s[k];
    					else 	//否则将序列合法性的标志位置为1
    					{
    						flag2 = 1;
    						break;
    					}
    		if (flag2 == 1)			//非法的序列
    		{
    			cout << "illegal sequence!" << endl;
    			exit(0); 
    		}
    	}
    	cout << "legal sequence!" << endl;	//合法的序列
            delete[] s;
    	return 0;
    }

    ★注:分析上述的代码我们不难看出,对于入栈序列1,2,3,4,5来说,其判断一个出栈序列的合法性的标准为出栈序列中,元素i之后比其小的元素必须是降序排列的。



    ②数组有其局限性,比如整型数组存放整型值,字符数组存放字符串,所以我们可以利用指针来做,对于其类型的问题,我们可以借助模板来实现。

    #include<iostream>    
    #include<stack>    
    #include<cstring>
    #include<cassert>  
    using namespace std;
    
    bool judge(const char *sour, const char *dest)		//不比更改两个序列的内容,所以可加const修饰限定符
    {
            assert(sour);<span style="white-space:pre">					</span>//断言可防止NULL指针的传入(避免传入指针引起程序崩溃的问题)
            assert(dest);
    	stack<char> ss;<span style="white-space:pre">					</span>//借助库函数创建一个栈
    	if (strlen(sour) != strlen(dest))  <span style="white-space:pre">		</span>//如果两个序列不一样长,自然是非法的序列
    		return false;
    
    	ss.push(*sour++); <span style="white-space:pre">				</span>//将首元素压栈
    	while (*dest != '\0')  
    	{
    
    		if (ss.empty() && *sour != '\0')  <span style="white-space:pre">	</span>//如果栈为空且入栈序列未结束,则不断压入元素
    			ss.push(*sour++);
    		while (*dest != ss.top() && *sour != '\0') 
    		{
    			ss.push(*sour++); <span style="white-space:pre">		</span>//如果出栈元素和栈顶元素不匹配则继续压入元素
    		}
    		if (*dest == ss.top())  <span style="white-space:pre">		</span>//如果两者相等,将该元素弹出,且指针指向出栈序列的下一位置上
    		{
    			dest++;
    			ss.pop();
    			continue;
    		}
    		if (*sour == '\0'&& ss.top() != *dest)  //如果一直不相等,知道入栈序列结束仍为匹配上,说明出栈序列非法
    		{
    			return false;
    		}
    	}
    	return true;<span style="white-space:pre">					</span>//否则序列合法
    }
    
    int main()
    {
    	char *str1 = "abcbd";
    	char *str2 = "abdbc";
    	int ret = judge(str1, str2);
    	cout << ret << endl;
    	return 0;
    }

    注:对于上述代码,只是实现了字符串的类型比较。要接受任意类型的参数,比如浮点型,自定义类型,结构体类型等就可以实现C++中的模板类,以实现代码的复用。

    例如:

    template<class T>
    bool judge(const T*sour,const T*dest,size_t size,size_t size)   //注意此时要传入序列的大小,并且创建栈时的类型也须换成T


    结语:代码执行流程的顺序图在此就不画了,本人画图工具用的不6,不美观,读者可自行画图帮助理解。






    展开全文
  • 如何校验RSA公钥的合法性

    千次阅读 2012-11-21 17:43:08
    最近在做开放平台相关的项目,外部开发者(isv)创建应用前,需要生成一对RSA... 当isv将公钥上传后,需要对公钥的合法性进行验证,以下是验证工具类     /** * RSA密钥合法性验证器 * * @author xianw...

        最近在做开放平台相关的项目,外部开发者(isv)创建应用前,需要生成一对RSA公私钥对,私钥自己保留,公钥上传给我们。Isv的应用访问公司服务时,需要用私钥对请求进行加签,然后我们用他之前提供的公钥进行验签。

          当isv将公钥上传后,需要对公钥的合法性进行验证,以下是验证工具类

     

     

    /**
     * RSA密钥合法性验证器
     * 
     * @author xianwu.zhang
     * @version $Id: RSAkeyChecker.java, v 0.1 2012-10-29 下午04:59:09 xianwu.zhang Exp $
     */
    public class RSAkeyChecker {
        /** 日志 */
        private static final Logger logger = LoggerFactory.getLogger(RSAkeyChecker.class);
    
        /**
         * 检查公钥的合法性
         * 
         * @param key   经过base64编码的公钥key
         * @return  生成公钥未抛异常,则返回<code>true</code>,否则返回<code>false</code>
         */
        public static boolean checkPublicKey(String key) {
            if (StringUtil.isBlank(key)) {
                return false;
            }
    
            try {
                getPublicKey(key);
                return true;
            } catch (Exception e) {
                logger.error("RSA公钥合法性校验失败", e);
                return false;
            }
    
        }
    
        /**
         * 生成RSA公钥
         * 
         * @param key   经过base64编码的公钥key
         * @return  rsa公钥
         * @throws Exception    key不合法,则抛异常
         */
        public static PublicKey getPublicKey(String key) throws Exception {
            byte[] keyBytes = (byte[]) Base64.decodeBase64(key.getBytes());
            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            PublicKey publicKey = keyFactory.generatePublic(keySpec);
            return publicKey;
        }
    }

     

    展开全文
  • 最简单的C语言判断日期合法性函数

    千次阅读 2019-06-15 09:48:57
    最近整理了一个判断日期合法性的函数,比较简洁,供大家参考,欢迎批评指正。 char Cheack_date(short w_year,char w_month,char w_date) { unsigned char Month_buf[12] = { 31,28,31,30,31,30,31,31,30,31,30,...
  • Qt ip地址与子网掩码合法性校验

    千次阅读 2017-03-05 09:20:17
    1、ip 地址合法性校验 static bool checkIp(QString ip) { QRegExp rx2("^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"); if( !rx2.exactMatch(ip) ) { return fals
  • 最近在做项目过程中,测试组人员对添加表单中的身份信息提出了需求,在填写身份证信息时,希望能对所填信息进行合法性校验。比如身份证的位数(目前二代身份证都是18位)、地区编号(所在省(市,旗,区)的行政区...
  • 正在表达式判断数学公式的合法性

    千次阅读 2018-11-09 11:52:49
    (function(){ /* * 假如待选变量: ID,NUM,TOTAL,AVL TEST ...=等合法性的判断可以留言 ,我可以分享解决方法。 文章转载来自于: https://blog.csdn.net/notejs/article/details/20608371
  • Linux 文件名合法性检测

    千次阅读 2018-10-08 16:29:54
    Linux 文件名合法性检测 Linux 文件名合法性一般规则: 文件名长度不超过255 避免使用加号、减号或者&quot;.&quot;作为普通文件的第一个字符 文件名避免使用下列特殊字符,包括制表符退格符 Python 示例...
  • 判断IPv6地址合法性

    千次阅读 2018-08-26 09:15:00
    头文件下有下列这些宏用于判断IPv6地址合法性 返回0代表true,返回非零值代表ipv6地址为非指定类型的的地址(false) int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *aptr);如果地址是未指定的IPv6地址,则IN...
  • 在java中判断日期合法性

    万次阅读 2018-05-23 16:10:59
    在java中,SimpleDateFormat 是一个以与语言环境有关的方式来... 日期)规范化,所以判断日期是否合法也是基于此。import java.text.SimpleDateFormat; class Main { public static void main(String[] args) {...
  • javascript页面验证数据的合法性

    千次阅读 2018-10-30 16:36:40
    javascript页面验证数据的合法性 &lt;script language="javascript"&gt; function on_submit() { //验证数据的合法性 if (form1.username.value == "") { alert("用户名不...
  • IP地址合法性校验

    千次阅读 2018-07-24 18:58:14
     /**输入合法性检查**/  if( !ip || !cidr )  return false;    /**针对ip地址的四个部分分别处理**/  for(i = 0;i ;i++ )  {  count = 0;  for(; ip[j]!='.' && ip[j]!='\0'; j++)  ...
  • 用c语言判断日期合法性

    千次阅读 2021-02-05 14:29:07
    判断日期是否合理,比如平年二月没有29号,小月没有31号等,注意输入日期的格式(如1920-3-6)。 代码实现: #include <stdio.h> int main() { int year; int month; int day; scanf("%d-%d-%d", &...
  • 判断用户名字符串的合法性

    千次阅读 2018-02-08 17:25:14
    编写程序,判断键盘输入的用户名字符串的合法性。 用户名要求总长度不少于10个字符,首字符必须是字母,其他位置必须含有2-6个不重复的数字,不能含有等号(=)星号(*)号。 例如:m123abc456是合法用户名 ...
  • 校验xml的合法性

    千次阅读 2015-11-19 10:54:17
    · XML Schema 可针对未来的需求进行扩展 · XML Schema 更完善,功能更强大 · XML Schema 基于 XML 编写 · XML Schema 支持数据类型 · XML Schema 支持命名空间   太官方的理由。我用...
  • C语言常量合法性的注意点

    千次阅读 2021-01-12 16:28:55
    八进制常量:开头必须是0,且八进制是0-7之间组成的数,例如,029就是错误的八进制表示方式。 十六进制常量:0X开头,包含字母ABCDEF,不区分大小写,例如0x与0X一样,0Xaa与0xAA,都是正确的。...
  • 身份证号码的合法性判断

    千次阅读 2012-05-19 13:12:20
    /***************************************************************************************...身份证号码合法性判断 问题描述: 我国公民的身份证号码特点如下: 1、 长度为18位; 2、 第1~17位只能为数字;
  • 判断子网掩码的合法性

    千次阅读 2015-09-16 16:50:07
    我们知道, 对于一个不为0的数字a, 如果 a & (a-1) 为0的话, 则a是2的n次幂. 完整的c语言表达式如下. if (a && (a & (a-1)) == 0) ... 我们进行2进制取反的话, ~x就是: 前n个bit为0, 后m个bit为1. 再加上1(~x +
  • 判断出栈顺序的合法性(面试题)

    千次阅读 2016-08-09 21:43:01
    判断出栈顺序的合法性 ”栈“是一种限制性线性表,是将线性表的插入、删除操作限制为仅在表的一端进行,一般将能够插入、删除的一端称为栈顶,表的另一端称为栈底。当栈中没有元素时称为空栈。即就是将每次进栈的...
  • 谁来检查方法参数合法性

    千次阅读 2018-05-13 00:00:00
    这样被外部可调用的时候,方法定义时需要进行值的合法性检验,因为无法确保外部始终传递合法的参数值。 对于内部的private等可见性等,则不是必需的,因为内部调用相对是可控更高的。 除此之外,我们在JavaDoc注释也...
  •  #使用re库的match方法校验传入的邮箱参数是否合理,是否与表达式匹配  if re.match(pattern,email) is not None:  print('输入的邮箱地址是正确的')  else:  print('输入的地址无效') ...
  • 文本框输入内容合法性检测

    千次阅读 2011-07-20 22:14:45
    网络游戏在注册账号时,需要对新的账户名密码进行规范。这里记录一些常用的检测方法:1,纯数字检测:public string A = “^[0-9]+$”;2,11位手机号码(1开头):public string B = "^1\d{10}$"';3,数字或英文:...
  • 我们都知道,身份证号是我们每个人的唯一的标识,既然要做到唯一,身份证号的设计肯定不会仅仅只是设计成18位,最后一位是数字或者“X”这么简单,仅仅只是这么来设计就太low了,而且很容易出现重复的情况,先看看...
  • PTA 7-6 出栈序列的合法性

    千次阅读 多人点赞 2020-03-15 16:42:17
    输出格式: 对每一行出栈序列,如果其的确是有可能得到的合法序列,就在一行中输出YES,否则输出NO。 输入样例: 5 7 5 1 2 3 4 5 6 7 3 2 1 7 5 6 4 7 6 5 4 3 2 1 5 6 4 3 7 2 1 1 7 6 5 4 3 2 输出样例: YES NO...
  • PTA 7-3 出栈序列的合法性(c语言)

    千次阅读 2019-10-10 19:57:27
    PTA 7-3 出栈序列的合法性(c语言) 本文章为小白复习,如果有误,欢迎大家纠错! 根据栈后进先出的特点,可以分析有以下两种情况不符合出栈合法的条件: *栈满溢出,例如:针对题上条件,序列6 5 4 3 2 1 7...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,479
精华内容 24,991
关键字:

并进行合法性和合理性