stripselector

求一个表单验证的JS

// JScript 文件
//检查年龄function isAge(str){
var mydate=new Date;
var now=mydate.getFullYear();
if (str 《 now-60 || str 》 now-18){
return false;
}
return true;
}

//自定义内容,验证是否由右边的字符串组成,下面demo中是表单项只能为数字和“_“,同样您可以进行扩展来达到您想要的目的。//用于电话/银行帐号验证上,可扩展到域名注册等
function isCheck(str1, str2) //isCheck(s,“0123456789-“){
var i;
var c;
if(str1.charAt( 0 )==’-’)
return false;
if( str1.charAt( str1.length – 1 ) == ’-’ )
return false;
for( i = 0; i 《 str1.length; i ++ )
{
c = str1.charAt( i );
if (str2.indexOf( c ) 《 0)
return false;
}
return true;
}

/* 用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
function isIP(strIP) {
if (isNull(strIP)) return false;
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式
if(re.test(strIP))
{
if( RegExp.$1 《256 && RegExp.$2《256 && RegExp.$3《256 && RegExp.$4《256) return true;
}
return false;
}

/* 用途:检查输入字符串是否为空或者全部都是空格
输入:str
返回:
如果全是空返回true,否则返回false
*/
function isNull( str ){
if ( str == ““ ) return true;
var regu = “^+$“;
var re = new RegExp(regu);
return re.test(str);
}

/*
用途:检查输入对象的值是否符合整数格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function isInteger( str ){
var regu = /^{1,}$/;
return regu.test(str);
}

/* 用途:检查输入手机号码是否正确
输入:s:字符串
返回:如果通过验证返回true,否则返回false
*/
function checkMobile( s ){
var regu =/^{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/*
用途:检查输入字符串是否符合正整数格式
输入:s:字符串
返回:如果通过验证返回true,否则返回false
*/
function isNumber( s ){
var regu = “^+$“;
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
}

/* 用途:检查输入字符串是否是带小数的数字格式,可以是负数
输入:s:字符串
返回:如果通过验证返回true,否则返回false
*/
function isDecimal( str ){
if(isInteger(str)) return true;
var re = /^+(\d+)$/;
if (re.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}

/* 用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false

*/ function isPort( str ){
return (isNumber(str) && str《65536);
}

/* 用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false

*/ function isEmail( str ){
var myReg = /^{2,3}$/;
if(myReg.test(str)) return true;
return false;
}

/* 用途:检查输入字符串是否符合金额格式
格式定义为带小数的正数,小数点后最多三位
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false

*/ function isMoney( s ){
var regu = “^{0,3}$“;
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
}
/*
用途:检查输入字符串是否只由英文字母和数字和下划线组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false

*/ function isNumberOr_Letter( s ){//判断是否是数字或字母
var regu = “^+$“; var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:检查输入字符串是否只由英文字母和数字组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false

*/ function isNumberOrLetter( s ){//判断是否是数字或字母
var regu = “^+$“; var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false

*/ function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成
var regu = “^+$“; var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/* 用途:判断是否是日期
输入:date:日期;fmt:日期格式
返回:如果通过验证返回true,否则返回false
*/
function isDate( date, fmt ) {
if (fmt==null) fmt=“yyyyMMdd“;
var yIndex = fmt.indexOf(“yyyy“);
if(yIndex==-1) return false;
var year = date.substring(yIndex,yIndex+4);
var mIndex = fmt.indexOf(“MM“);
if(mIndex==-1) return false;
var month = date.substring(mIndex,mIndex+2);
var dIndex = fmt.indexOf(“dd“);
if(dIndex==-1) return false;
var day = date.substring(dIndex,dIndex+2);
if(!isNumber(year)||year》“2100“ || year《 “1900“) return false;
if(!isNumber(month)||month》“12“ || month《 “01“) return false;
if(day》getMaxDay(year,month) || day《 “01“) return false;
return true;
}

function getMaxDay(year,month) { if(month==4||month==6||month==9||month==11)
return “30“;
if(month==2)
if(year%4==0&&year%100!=0 || year%400==0)
return “29“;
else
return “28“;
return “31“;
}

/* 用途:字符1是否以字符串2结束
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false

*/ function isLastMatch(str1,str2)
{
var index = str1.lastIndexOf(str2);
if(str1.length==index+str2.length) return true;
return false;
}

/*
用途:字符1是否以字符串2开始
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false

*/ function isFirstMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==0) return true;
return false;
}

/* 用途:字符1是包含字符串2
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false

*/ function isMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==-1) return false;
return true;
}

/*
用途:检查输入的起止日期是否正确,规则为两个日期的格式正确,
且结束如期》=起始日期
输入:
startDate:起始日期,字符串
endDate:结束如期,字符串
返回:
如果通过验证返回true,否则返回false

*/ function checkTwoDate( startDate,endDate ) {
if( !isDate(startDate) ) {
alert(“起始日期不正确!“);
return false;
} else if( !isDate(endDate) ) {
alert(“终止日期不正确!“);
return false;
} else if( startDate 》 endDate ) {
alert(“起始日期不能大于终止日期!“);
return false;
}
return true;
}

/* 用途:检查输入的Email信箱格式是否正确
输入:
strEmail:字符串
返回:
如果通过验证返回true,否则返回false

*/ function checkEmail(strEmail) {
//var emailReg = /^{2,3}$/;
var emailReg = /^+)+$/;
if( emailReg.test(strEmail) ){
return true;
}else{
alert(“您输入的Email地址格式不正确!“);
return false;
}
}

/*用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false

*/function checkPhone( strPhone ) {
var phoneRegWithArea = /^{5,10}$/;
var phoneRegNoArea = /^{5,8}$/;
var prompt = “您输入的电话号码不正确!“
if( strPhone.length 》 9 ) {
if( phoneRegWithArea.test(strPhone) ){
return true;
}else{
alert( prompt );
return false;
}
}else{
if( phoneRegNoArea.test( strPhone ) ){
return true;
}else{
alert( prompt );
return false;
}
}}
《/script》

Bootstrap中dropdown的问题

dropdown会先根据data-target来寻找下拉菜单,如果没有data-target这个属性,会检测href中的规则,最后会直接查找上级DOM对象中的dropdown-menu为菜单项。 dropdown.js中的相关代码如下 function getParent($this) { var selector = $this.attr(’data-target’) if (!selector) { selector = $this.attr(’href’) selector = selector && /#*$)/, ’’) // strip for ie7 } var $parent = selector && $(selector) return $parent && $parent.length ? $parent : $this.parent() }

笔记本如何组建磁盘阵列

部分笔记本支持组建磁盘阵列

 建立 RAID 磁盘阵列

警告! 重新建立 RAID 磁盘阵列时,所有磁盘储存装置中的数据将会被删除。

1. 进入 BIOS 设定: 计算机重新启动时,在 POST(开机自动测试) 时按下 《F2》,进入BIOS 设定页面。

2. 当进入 BIOS 设定画面时, 将会出现计算机系统信息。之后在页面中按下 《F7》 进入  (进阶模式)。

3. 在  按下 《Enter》 进入。

4. 在  然后按下 《Enter》。

5. 在 。

①: 可输入 RAID 数组的名称。

②: 选择要建立的 RAID 模式。

③。

④: 选择 RAID 数组区块大小,,可用区块数值从 4 KB 至 128 KB。

⑤: 可输入所需的 RAID 数组容量,默认值为可允许的最大容量。

6. 完成所有设定后选择  页面。

7. 最后按下《F10》,选择  储存您的变更并离开 BIOS 设定程序。

8. 当重新建立/删除 RAID 磁盘阵列后,即可开始重新安装操作系统。

 建立 RAID 磁盘阵列

警告! 重新建立 RAID 磁盘阵列时,所有磁盘储存的数据将会被删除。

 

1. 进入 BIOS 设定: 计算机重新启动时,在 POST(开机自动测试) 时按下 《F2》,进入BIOS 设定页面。

2. 当进入 BIOS 设定画面时, 将会出现计算机系统信息。之后在页面中按下 《F7》 进入  (进阶模式)。

3. 在  按下 《Enter》 进入。

4. 在  然后按下 《Enter》。

5. 在  然后按下 《Enter》。

6. 在  然后按下 《Enter》。

7. 在 。

8. 请在页面中再次确认,之后选择  页面。

9. 请前往  然后按下 《Enter》。

10. 在  然后按下 《Enter》。

11. 在  然后按下 《Enter》。

12. 在  页面。

13. 在 。

①: 输入所需的 RAID 数组容量,默认值为可允许的最大容量。

②: 选择RAID 数组容量的显示单位。

③: 选择 RAID 数组区块大小,,可用区块数值从 64 KB 至 256 KB。

④: 选择RAID 数组是否采用读取数据时支持暂存Cache或不支持。

⑤: 选择RAID 数组是否采用写入数据时支持暂存Cache或不支持。

14. 完成所有设定后选择  页面。

15. 最后按下《F10》,选择储存您的变更并离开 BIOS 设定程序。

16. 当重新建立/删除 RAID 磁盘阵列后,即可开始重新安装操作系统。

db2的strip函数怎么用

strip跟trim类似,可以去掉2端指定的字符,
strip(string, b|l|t, char)
其中b=both,指去掉2端, l=leading,指去掉前导, t=trailing,指去掉后续
如 strip(’009900’, b, ’0’)就是去掉2端的0,结果为’99’
char可以没有,没有时指删除空白字符,跟trim/ltrim/rtrim类似

Python+Selenium 元素获取及使用心得

1、获取输入框再输入信息的时候,发现send_keys会把内容输入到所获取输入框的隔壁框框(比如下一个框),排查一大通后发现,是因为待输入的数据前面包含个空格(这空格在Excel里还看不出来),send_keys方法会连空格也输入进去,元素定位并没有不准,这空格就是输入“跳框”的元凶。

解决的办法是检查待输入的源数据,strip去掉前后的空格。

2、直接定位元素的方法,比如Xpath和CSS Selector虽然方便,但是用多了程序健壮性会变差。想想也是,比如新开的页面里,按钮多一个少一个,或者顺序位置发生变化,元素就选错了,后面肯定就不按剧本走了。

这时候最好按id、class name来获取,如果不唯一,那就遍历循环判断(比如先找到父元素再遍历各个子元素),虽然程序运行效率会降低一些,但是程序跑起来的时候不容易挂。

关于效率问题其实也不用太纠结,我都纯用Selenium了我还在乎啥效率啊(手动狗头)

3、循环判断筛选元素的时候,get_attribute是个好东东,常见的比如text,scr,甚至onclick事件里的字符串都可以用来做判断。但是切记最好放在try里,遍历虽好,找到个空值就直接挂了。

scrapy 怎么获取status

status = 200
pid = 0
url = ““

def start_requests(self):
while line:
if self.status == 403 and token_num == len(token):
headers
token_num = 1
page = scrapy.http.Request(self.url, meta = {’pid’:self.pid}, headers = headers, dont_filter = True, callback = self.parse)
yield page
elif self.status == 403 and token_num 《 len(token):
headers
token_num = token_num + 1
page = scrapy.http.Request(self.url, meta = {’pid’:self.pid}, headers = headers, dont_filter = True, callback = self.parse)
yield page
info = line.split(’ ’)
pid = info.strip()
url = info.strip()
page = scrapy.http.Request(url, meta = {’pid’:pid}, headers = headers, dont_filter = True, callback = self.parse)
line = lang_file.readline()
yield page
def parse(self, response):
item = DmozItem()
sel = Selector(response).xpath(’/html’)
item
item.extract())
self.pid = response.meta
self.url = response.url
self.status = response.status
yield item

strip和split函数都是什么意思

  STRIP函数的语法如下:
  》》-STRIP–(—string –expression– + ———————-+—)-》《
’-,–+–BOTH—-+–+—-+—’ +–LEADING-+
+–L——-+
+–TRAILING+
’-T———’
B:BOTH表示两头
L:LEADING表示去头
T:TRAILING表示去尾
strip-character:表示要截去的单个字符常量
  比如:
  db2 “select ’#’||strip(’00000999000’,b,’0’)||’#’ from sysibm.sysdummy1“
1
————-
#999#
1 record(s) selected.
db2 “select ’#’||strip(’ 999 ’,t,’ ’)||’#’ from sysibm.sysdummy1“
1
————-
  # 999#
1 record(s) selected.
db2 “select ’#’||strip(’ 99 9 ’,t,’ ’)||’#’ from sysibm.sysdummy1“
1
————-
# 99 9#
1 record(s) selected.
db2 “select ’#’||strip(’00990090000’,l,’0’)||’#’ from sysibm.sysdummy1“
1
————-
#990090000#
1 record(s) selected.
split函数是编程语言中使用的函数,
是指返回一个下标从零开始的一维数组,
它包含指定数目的子字符串。

含有html标签的字符串,如何在winform中显示

我来回答,所用到的都是ASP读写数据库操作.
没有具体的规则.
现在给你些资料
一.页面设计部分
1.img控件
alt:所有展示类图片都要具有能简要描述图片内容的文字说明。
2.Input控件
maxlength:所有INPUT控件都需要制定maxlength属性,默认值为数据库中对应的字段的长度。
readonly:所有不可更改的信息都要使用readonly属性。
3.Form控件
action:所有Form都要指定action,如果提交给本身就指定action=““
method:执行不可逆动作使用POST,可逆动作使用GET
onsubmit:所有form都要指定提交前需要的检查程序。
所有form都要有对应的reset button。
4.button控件
onclick:form中用于提交的button不容许使用此方法,所有数据检查通过form的onsubmit激活。
5.title属性
所有页面都要具有和本页标题相同的title。
6.控件的命名
采用控件类型缩写(小写)+英文单词(第一个字母大写)的方法。
开发中控件基本涉及一下几类
button:btn
form:frm
select:sel
textarea:txt
input:ipt
7.语言设置
所有中文页面都要加上如下语句:
《meta
相信对你有所帮助 3545希望对你有帮助!

如何组建磁盘阵列(RAID)

 建立 RAID 磁盘阵列

警告! 重新建立 RAID 磁盘阵列时,所有磁盘储存装置中的数据将会被删除。

1. 进入 BIOS 设定: 计算机重新启动时,在 POST(开机自动测试) 时按下 《F2》,进入BIOS 设定页面。

2. 当进入 BIOS 设定画面时, 将会出现计算机系统信息。之后在页面中按下 《F7》 进入  (进阶模式)。

3. 在  按下 《Enter》 进入。

4. 在  然后按下 《Enter》。

5. 在 。

①: 可输入 RAID 数组的名称。

②: 选择要建立的 RAID 模式。

③。

④: 选择 RAID 数组区块大小,,可用区块数值从 4 KB 至 128 KB。

⑤: 可输入所需的 RAID 数组容量,默认值为可允许的最大容量。

6. 完成所有设定后选择  页面。

7. 最后按下《F10》,选择  储存您的变更并离开 BIOS 设定程序。

8. 当重新建立/删除 RAID 磁盘阵列后,即可开始重新安装操作系统。

 建立 RAID 磁盘阵列

警告! 重新建立 RAID 磁盘阵列时,所有磁盘储存的数据将会被删除。

 

1. 进入 BIOS 设定: 计算机重新启动时,在 POST(开机自动测试) 时按下 《F2》,进入BIOS 设定页面。

2. 当进入 BIOS 设定画面时, 将会出现计算机系统信息。之后在页面中按下 《F7》 进入  (进阶模式)。

3. 在  按下 《Enter》 进入。

4. 在  然后按下 《Enter》。

5. 在  然后按下 《Enter》。

6. 在  然后按下 《Enter》。

7. 在 。

8. 请在页面中再次确认,之后选择  页面。

9. 请前往  然后按下 《Enter》。

10. 在  然后按下 《Enter》。

11. 在  然后按下 《Enter》。

12. 在  页面。

13. 在 。

①: 输入所需的 RAID 数组容量,默认值为可允许的最大容量。

②: 选择RAID 数组容量的显示单位。

③: 选择 RAID 数组区块大小,,可用区块数值从 64 KB 至 256 KB。

④: 选择RAID 数组是否采用读取数据时支持暂存Cache或不支持。

⑤: 选择RAID 数组是否采用写入数据时支持暂存Cache或不支持。

14. 完成所有设定后选择  页面。

15. 最后按下《F10》,选择储存您的变更并离开 BIOS 设定程序。

16. 当重新建立/删除 RAID 磁盘阵列后,即可开始重新安装操作系统。