![](/img/trans.png)
[英]Javascript Regular Expression for whole word match which may contains special characters also
[英]How to use a Regular Expression in JavaScript which contains special characters
抱歉,今天早上可能很愚蠢,但是我對正則表達式了解不多,但是創建了一些我想與https://regex101.com/一起使用的東西
但是...如果不先轉義,我將無法使用他們在Javascript中建議的代碼。
這是正則表達式: (?<=color:\\s)([az]+)
哪個功能符合我的要求(在CSS文件中,在顏色后面匹配一個詞)
但是,他們建議在JS中使用的代碼是:
var re = /(?<=color:\s)([a-z]+)/g;
var str = ' color: black';
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
第一行不起作用,所以我將其轉義為: var re = /\\(?<=color:\\s\\)([az]+)/i
,它將停止Javascript錯誤,但與弦了。
我究竟做錯了什么?
順便說一句...誰能指出我要擴展此正則表達式以排除括號后面的任何內容? 我試圖僅獲取顏色名稱,因此“顏色:黑色;” 應該匹配,“ box-shadow:black ... etc”也應該匹配,但是理想情況下,不應該匹配“ color:rgb(... etc”
確實,盡管有一些變通方法 ,JS不支持回溯:
在這種情況下,使用捕獲組要容易得多:
var re = /\\bcolor:\\s*([az]+)/ig; var str = ' color: black'; var m; while ((m = re.exec(str)) !== null) { if (m.index === re.lastIndex) { re.lastIndex++; } // m[1] is holding our value! document.getElementById("res").innerHTML = m[1]; }
<div id="res"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.