js数组和正则表达式

JavaScript08

js数组和正则表达式,第1张

RegExp()的第二个参数主要支持g,i,m这3个修饰性字符

字符g,用来指定全局匹配

字符 i ,是用来指定大小写为等同;

字符 m 是多行一词的缩写,设置匹配模式能够在多行字符串中执行操作

var a = "javasssss"

    var s = new RegExp("a","gi")

    alert(a.match(s))

返回值为a,a

var a = "javasssss sssswww aaaaa"

    var s = new RegExp("\\b\\w","gi")

    alert(a.match(s))

返回值为j,s,a

\\b\\w是一个匹配模式,其中反斜杠表示转义序列,而双斜杠表示的是斜杠的意思,\b表示边界的意思\w表示的任意的ASCii码,指的就是每一个单词的首字母;

var a = "javasssss sssswww aaaaa"

    var r=new RegExp("\\x61")

    var s=a.match(r)

    alert(s)

x61表示的是a的十六进制的ascii码,除了十六进制以外,还可以直接使用八进制数值来匹配例如;

var a = "javasssss sssswww aaaaa"

    var r=new RegExp("\\141")

    var s=a.match(r)

    alert(s)

js中的特殊字符

\o表示空字符   

\t表示制表位

\n表示换行符

\v表示垂直制表符

\f表示换页符

\r表示回车符

\a表示alert字符

\e表示escape字符

\b表示回退字符

\cX表示控制自负^x

对于这些特殊的字符,如果在RegExp构造函数中使用,必须使用双斜杠表示专业。

定义简单的字符类

var a = "javasssss sssswww aaaaa"

    var r=new RegExp("[abcsw]","gi")

    var s=a.match(r)

    alert(s)

返回值为

查找字符串中是否有字符类中的字母

定义反义字符类

var a = "aba abd abg abe"

    var r=new RegExp("ab[^abc]","gi")

    var s=a.match(r)

    alert(s)

返回值为

第三个字符表示除了a,b,c以外的字符都可以

var r= new RegExp("[^012345679]","gi")

匹配除了数字以外任意的字符。反义字符类比简单字符类更加强大和实用

如果任意双字节的汉字,你可以这样设计

var r=new RegExp("\\u0000-\\u00ff","gi");

预定义字符类

JS中onkeydown, onkeyup, onblur 三个事件对比,并js实现判断文本框是否为空和按Enter键实现Tab换行

1、onkeydown, onkeyup, onblur

onkeydown: 是按下键盘中某个键时触发

onkeyup: 是按下键盘中某个键并弹起时触发

最明显的是Textbox 当光标在Textbox上,你按下'a'键时

onkeydown是先响应其中事件,事件响应完了之后把'a'赋值给Textbox

onkeyup是先把'a'赋值给Textbox, 后响应其中的事件

onblur: 是切换光标时触发

2、判断文本框是否为空

//name: 提示信息

//stxt: 要判断的控件ID

function checkisnull(name, stxt){

var str = document.getElementById(stxt)

if(str.value.length == 0){

alert(name.toString() + "不能为空")

document.getElementById(stxt).focus()

}

}

按下Enter键进行换行

function totab(){

if(window.event.keyCode == 13){

window.event.keyCode   =   9

//keycode为13是Enter键 9是Tab键

}

}

3、在实际使用中

<asp:TextBox

ID="wTxt_JCTitle" onkeydown="totab()" onblur="checkisnull('本卷标题

','wTxt_JCTitle')"  runat="server"

 Font-Size="20pt"></asp:TextBox>

\s表示空白字符,已经包括制表符\t了,还有个数为0时是没有意义的,那样起不到分隔的作用,用在split函数里面的话,若个数为0,就会每个字符都分割了。可以改成这样:

alert("aaaa bbbb".split(/\s+/)[0]+"1")