js 正则表达式提取某一段字符

JavaScript010

js 正则表达式提取某一段字符,第1张

var str = "BEGIN CONST a,b=10,c END IF a>10 && (a+c<20 || b>c) THEN RETURN true END ELSE RETURN false END END END"

str=str.replace(/\s/g,"")//取掉空格

str=str.match(/IF(\S*)THEN/)[1]//正则取出IF和THEN之间的字符串

str=str.split("&&")//按照&&分组

var str_end=str[0].split('>') //按照>分组

alert(str_end)//最终结果为str_end[0]=a  str_end[1]=10 

最基本的表达式创建法。

// Description: 演示正则表达式的创建

// CopyRight: http://www.cnblogs.com/yangmingming

// Notes: 最基本的创建法演示

var re=new RegExp ()

//RegExp 是JS中的类,同Array类似。然而这个创建方法没有指定表达式内容

re=new RegExp ("a")

//最简单的正则表达式,将匹配字母a

re=new RegExp ("a","i")

//重载的构造函数,其第二个参数指定将不区分大小写

其中,对于第二个参数,为可选参数,包括三种:

g :全文查找;

i :不区分大小写;

m:多行查找;

然而更为常见的正则表达式创建法则是:字面量的声明方式。 即:

// Description: 演示正则表达式的创建

// CopyRight: http://www.cnblogs.com/yangmingming

// Notes: 最基本的创建法演示

var re=/a/i

//其作用同:re=new RegExp ("a","i"),而且更常用。

正则表达式方法:

test 方法:返回Boolean型。它指出被查找的字符串中是否包含该模式。如果存在返回True,否则返回False;

exec 方法:用正则表达式模式在字符串中寻找,并返回符合该正则表达式模式的数组;

这个直接用javascript的正则表达式取就可以了。

下面是简单的代码实现,仅供参考:

var a = 'asdfwlf!@#@##$%$%^SFDGD^%^%&&$#'

console.log(a.match(/[\~!@#$%^&*-_]/g))

//这个结果是:["!", "@", "#", "@", "#", "#", "$", "%", "$", "%", "^", "S", "F", "D", "G", "D", "^", "%", "^", "%", "&", "&", "$", "#"],出来的是一个数组。

可以通过join的方式编程一个字符串。

console.log(a.match(/[\~!@#$%^&*-_]/g).join())

//结果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#

如果不想要',' ,还可以再把','去掉。

console.log(a.match(/[\~!@#$%^&*-_]/g).join(''))

//结果是:!@#@##$%$%^SFDGD^%^%&&$#