正規表示式(?!)作用

admin發表於2018-05-20

(?!)表示負向零寬先行斷言,先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var one="javascript";
var two="javac#";
var reg=/java(?!script)/g;
console.log(one.match(reg));
console.log(two.match(reg));

第一個字串的內容不能被匹配,第二個字串中的"java"可以被匹配。

一.(?!)的匹配原理:

(1).負向:表示不匹配指定內容。

(2).先行:表示右側的字串。

(3).零寬:表示匹配內容只會當做匹配的條件,而不會真正的被匹配。

所以正規表示式/java(?!script)/g的作用是匹配後面不跟隨"script"的字串"java"。

二.相關閱讀:

(1).零寬斷言參閱正規表示式零寬斷言一章節。

(2).正規表示式匹配原理參閱正規表示式匹配原理一章節。

相關文章