javascript使用正则表达式

Javascript和Java一样都不支持平衡组的应用

Javascript中的string对象:

match(regexp) 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

<script type="text/javascript">
var str="1 plus 2 equal 3";
var result=str.match(/\d+/g);
document.write(result);//输出1,2,3
document.write(result[0]);//输出1
document.write(result[2]);//输出3
document.write(result[3]);//输出undefined
var reg = new RegExp("(^|&)"+ "ds" +"=([^&]*)(&|$)");  
var r = "ds=123&tn=456".match(reg);
document.write(r[0]);//输出ds=123&
document.write(r[1]);//输出
document.write(r[2]);//输出123
document.write(r[3]);//输出&
var reg = new RegExp("(^|&)"+ "ds" +"=([^&]*)(&|$)");  
var r = "ds=123&tn=456&ds=789".match(reg);
document.write(r[0]);//输出ds=123&
document.write(r[1]);//输出ds=789
</script>

在第一种没有子表达式的匹配中是以所有的匹配结果为数组
在第二种有子表达式的匹配中,数组中第一个元素是整体的匹配结果,后面的元素才是依次每个子表达式的结果
在第三种有子表达式的匹配中,若可以匹配多组字符串,则效果和第一种一样

replace(regexp/substr,replacement)方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串

如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。replacement 中的 $ 字符具有特定的含义。

字符 替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。

<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "W3School"))
</script>

输出:Visit W3School!

name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
"Doe, John" 转换为 "John Doe"

split(separator,howmany) 方法用于把一个字符串分割成字符串数组。

separator字符串或正则表达式,howmany(可选)该参数可指定返回的数组的最大长度。

JavaScript RegExp 对象

直接量语法 :/pattern/attributes

创建 RegExp 对象的语法 :new RegExp(pattern, attributes);

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、不区分大小写的匹配和多行匹配。

compile(regexp,modifier)方法也可用于改变和重新编译正则表达式

modifier 规定匹配的类型。"g" 用于全局匹配,"i" 用于不区分大小写,"gi" 用于全局不区分大小写的匹配。

exec(string) 方法用于检索字符串中的正则表达式的匹配。

返回一个数组,其中存放匹配的结果和匹配文本的结束位置。如果未找到匹配,则返回值为 null。

<script type="text/javascript">
var str = "Visit W3School, W3School is a place to study web technology."; 
var patt = new RegExp("W3School","g");
var result;
while ((result = patt.exec(str)) != null)  {
  document.write(result);
  document.write("<br />");
  document.write(patt.lastIndex);
  document.write("<br />");
 }
</script>
输出:
W3School
14
W3School
24

test(string) 方法用于检测一个字符串是否匹配某个模式.

如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

<script type="text/javascript">
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
document.write("Result: " + result);
</script>
输出:true


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值