JavaScriptオブジェクト指向基礎-正規表現
9915 ワード
正規表現の概念正規表現は、文字列抽出、文字列置換、文字列検証など、文字列動作において厄介な場面を解決するために用いられる. はよく使われています.フォーム検証:数字かどうか、電話番号であり、メールボックスです. 文字列置換: 文字列検索 正規表現もjavascriptの中の一つのオブジェクトです. は、モードで文字列を検索し、結果に基づいてtrueまたはfalseを返します. は、指定されたモードで文字列を検索し、検索されたテキストを返します. マッチが見つからない場合、nullに戻ります. 正規表現を作成します. は、文字列方法 正規表現を用いて検索文字列の「world」の大文字小文字無感度検索を実行します. は、文字列方法 大文字と小文字は敏感です.
は、文字列方法 文字列方法
文字の種類 は、改行(\r)以外の任意の文字 を表しています.マッチする場合、文字、 は、数字 を表しています.
は、\dの反動結果を表し、数字 ではないことを表しています.
はアルファベット、数字、アンダースコアにマッチしています.三者はその一つを満足すればいいです.
は\wの反対を表しています.アルファベット、数字、アンダースコア ではありません.
は、空白文字(例えば、\r\tスペース)を表します. は\sの取りで、空白文字ではない です.
は、変換文字 を表しています.
は、一定範囲の文字列を検索するために使用されます. 検索範囲以外の文字列 を表す. を表している. は、大文字小文字に敏感でないマッチングを実行する. は、グローバルマッチングを実行します. は、複数行のマッチングを実行する. 文字量詞 に0回以上の出現があります.
は1回または複数の が現れます.
は0回または1回の が現れます.
出現3回 は少なくとも3回の が現れます.
出現3-5回 または パケット フォーム検証
test()
方法exec()
方法 var reg = new RegExp();
console.log(reg);
// /(?:)/
var reg = new RegExp();
reg = /[1][3][7][\d]{8}/;
var res = reg.test(13770795672);
console.log(res);
// ture
var res = reg.exec(13770795672);
console.log(res);
//
res = {
0: "137707956",
groups: undefined,
index: 0,
input: "13770795672",
length: 1,
}
正規表現の適用var reg = new RegExp('a');
var reg = /a/;
search()
に正規表現を用いて検索する. var str = 'Hello world!';
var res = str.search(/world/);
console.log(res);
// 6
replace()
に正規表現を用いて置換する. var str = 'Hello world!';
var res = str.replace(/Hello world!/, ' , !');
console.log(res);
match()
に正規表現を用いてマッチングする.match()
は、正規表現方法exec()
と一致した. var str = 'Hello world!';
var res = str.match(/Hello world!/);
console.log(res);
//
res = {
0: "world",
groups: undefined,
index: 6,
input: "Hello world!",
length: 1,
}
var str = /Hello world!/;
var res = str.exec('Hello world!');
console.log(res);
//
res = {
0: "world",
groups: undefined,
index: 6,
input: "Hello world!",
length: 1,
}
正規表現の特殊文字文字の種類
.
/qq\.com/
または/qq[.]com/
var reg=/./;
reg.test("a"); //true
reg.test("."); //true
reg.test("\r"); //false
reg.test("1\r"); // 1, , :true
reg.test("\r
"); //false
\d
var reg=/\d/;
reg.test("123abc"); // , true
reg.test("abcde"); // , false
// :
var _reg=/\d\d/;
_reg.test("1b"); // 2 , :false
_reg.test("a12c"); // 2 , :true
// : 11
var isCellphoneNumber=/\d\d\d\d\d\d\d\d\d\d\d/;
\D
var reg=/\D/;
_reg.test("123"); // , :false
_reg.test("123a"); // , :true
var reg2=/123\D5/;
_reg.test("12345"); //false
_reg.test("123b5"); //true
\w
var reg=/\w/;
reg.test("123"); // , :true
reg.test("a"); //true
reg.test("1"); //true
reg.test("_"); //true
reg.test("-"); //false
reg.test("."); //false
reg.test("1."); //true
reg.test("_\r
"); //true
reg.test("\r
"); //false
\W
var reg = /\W/;
reg.test('='); // true
reg.test('5'); // false
\s
var reg=/\s/;
reg.test("abc def"); // , :true
reg.test("abc\r123"); // \r, :true
reg.test("abc"); //false
\S
var reg=/\S/;
reg.test(" \r
"); // , false
reg.test("123 abc"); // , true
var reg3=/\s\S/;
reg3.test(" a"); //true
reg3.test("a "); //false
reg3.test("a b"); //true
\
var reg=/./; //
var reg=/\./; // .
var reg=/\//; // :/
var reg=/[/]/; //。。。。。。。。。
文字セット[]
var reg=/[1a2b3]/; // 5 , ,
reg.test("a"); // :true
reg.test("3"); // :true
reg.test("fg5678"); // , :false
reg.test("a999999"); // :true
var reg2=/[123][abc]/;
reg2.test("2a"); //true
reg2.test("3c"); //true
reg2.test("asdfasdf1c"); // 1c, :true
reg2.test("39"); //
var reg2=/[0-9]/; // 0-9 , :/\d/
var reg3=/[a-z]/; //
var reg4=/[A-Z]/; //
var reg5=/[a-zA-Z]/;//
var reg6=/[A-Za-z]/;//..........
var reg10=/[0-9abc]/;
reg10.test("3");//true
reg10.test("five");//false
reg10.test("banana");//true
[^]
var reg=/[^123]/; // 1 2 3
reg.test("a"); //true
reg.test("3"); //false
reg.test("123"); // 1,2,3 , :false
文字の境界^
は、マッチング開始文字列 var reg=/^abc/; // abc
reg.test("123abc123"); // abc , :false
reg.test("abc123"); // abc , :true
$
は、マッチング終了文字列 var reg=/abc$/; // abc
reg.test("123abc"); // :true
reg.test("abc123"); // :false
var reg=/^abc$/; // abc
reg.test("abc"); // :true
reg.test("123abc"); // :false
修飾子i
g
m
*
var reg=/\d*/;
reg.test("123"); //true
reg.test("234");
var reg3=/1\d*/;
reg3.test("123"); //true
reg3.test("a123") //true
reg3.test("a1b"); //false
+
?
{3}
{3,}
{3,5}
var reg=/abc{3}/; // abccc
reg.test("123abccc123"); // :true
|
var reg=/abc|123/; // abc 123
()
var reg=/(\d{3-4})-(\d{7,8})/;
var arr="021-33335555".match(/(\d{3,4})-(\d{7,8})/)
arr[0] //
arr[1] // :021
arr[2] // :333355555
//
arr = {
0: "021-33335555",
1: "021",
2: "33335555",
groups: undefined,
index: 0,
input: "021-33335555",
length: 3,
}
var reg = /(\d{3-4})-(\d{7,8})/;
var res = "021-33335555".replace(/(\d{3,4})-(\d{7,8})/,' :$1');
console.log(res);
// data- ?
var str = "sjhsf hj-123data-sgfas123ga";
var s1=str.replace(/data-[a-z0-9]+/,"");
console.log(s1);
//type
var type = Object.prototype.toString.call('1');
console.log(type);
//[object Xxxx]
//type.replace(/\[object /,"").replace(/\]/,"").toLowerCase();
var type2 = type.replace(/\[object |\]/g,"").toLowerCase();
console.log(type2);
正規表現を使う // ,4 16 ( , , , )
var reg = /^[a-zA-Z0-9_-]{4,16}$/;
// , 6 , 1 ,1 ,1 ,1
var reg = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//
var reg = /^[1][3][0-9]{9}$/;
//
var reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
// URL
var reg = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
// IPv4
var reg = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
//
var reg = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//
var reg = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
// ,
var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
// QQ
var reg = /^[1-9][0-9]{4,10}$/;
//
var reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
//
var reg = /^[ A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9 ]{1}$/;
//
var reg = /[\u4E00-\u9FA5]/;