javascript 正则表达式(一)
正则表达式的直接变量字符:
字符 | 匹配 |
---|---|
\o | NUL字符 |
\t | 制表符 |
\n | 换行符 |
\v | 垂直制表符 |
\f | 换页符 |
\r | 回车 |
\xnn | 由十六进制nn指定的拉丁符,比如:\x0A等价于\n |
\uxxxx | unicode字符 |
\cX | 控制字符^X |
正则表达式的js引用:var sEnd=new RegExp("s$"); ——以s为结尾的字符串匹配
function Verify() {
//获取需验证的值,正则表达式
var InforString = document.getElementById("textInfor").value;
var RuleString = document.getElementById("TextAreaRule").value;
var inString = document.getElementById("textInfor").innerHTML;
//正则表达式和需验证的值是否为空
if (InforString != "" && RuleString != "") {
try {
var reg = new RegExp(RuleString)
var result = reg.test(InforString);
if (result) {
verifyResult.innerHTML = "通过!";
}
else {
verifyResult.innerHTML = "不通过!";
}
}
catch (e) {
verifyResult.innerHTML = e.name + ":" + e.message;
}
}
else if (InforString == "") {
verifyResult.innerHTML = "需验证的字符为空!";
}
else if (RuleString == "") {
verifyResult.innerHTML = "正 则表达式为空!";
}
}
正则表达式:
被验证字符:
在正则表达式中具有特殊含义的,它们是:
^ $ . * + ! : | \ / () [] {} 以后进行研究
如果在正则表达式中按照直接量使用这些标点符号,前面必须加“\”(转义符)。
其他字符(若@和引号)没有特殊含义,在正则表达式中只按照直接量匹配自身。注:\\——“\”
题目问题:"A[B]C[D]E[F]G"将其分为两个数组,分别是 ACEG 和 [B][D][F].
//问题:"A[B]C[D]E[F]G"将其分为两个数组,分别是 ACEG 和 [B][D][F].
function GroupString() {
var test = document.getElementById("textContent").value;
//方法一
// var test1 = test.match(/\[(\w)*\]/g);
//方法二
var s = /\[(\w)*\]/g;
var result;
var test1 = [];
while ((result = s.exec(test)) != null) {
test1.push(result[0]);
}
var test2 = test.split(/\[(\w)*\]/);
alert("数组一:" + test1 + "数组二:" + test2);
}
疑问:
都是寻找[B][D][F]数组的,不知哪个更好?
//问题:"A[B]C[D]E[F]G"将其分为两个数组,分别是 ACEG 和 [B][D][F].
function GroupString() {
var test = document.getElementById("textContent").value;
//方法一
// var test1 = test.match(/\[(\w)*\]/g);
//方法二
var s = /\[(\w)*\]/g;
var result;
var test1 = [];
while ((result = s.exec(test)) != null) {
test1.push(result[0]);
}
var test2 = test.split(/\[(\w)*\]/);
alert("数组一:" + test1 + "数组二:" + test2);
}
方法一:var test1 = test.match(/\[(\w)*\]/g);
方法二:var s = /\[(\w)*\]/g;
var result;
var test1 = [];
while ((result = s.exec(test)) != null) {
test1.push(result[0]);
}