簡體   English   中英

如何創建一個正則表達式來檢查字符串是否包含javascript中的特定模式?

[英]How to create a regex that checks the string contains specific pattern in javascript?

我有一個需要遍歷字符串並首次出現特定模式的要求,如下所示,

i am a new **point**

在出現兩個連續字符時,必須返回true。

I must *not* be returned or*

上面的模式必須返回false。我試圖通過幾個鏈接創建正則表達式,但是string.match方法總是返回null。 我的代碼

 var getFormat = function(event) { var element = document.getElementById('editor'); var startIndex = element.selectionStart; var selectedText = element.value.slice(startIndex); var regex = new RegExp(/(\\b(?:([*])(?!\\2{2}))+\\b)/) var stringMatch = selectedText.match(regex); console.log('stringMatch', stringMatch); } 
 <html> <body> <textarea onclick='getFormat(event);' rows='10' cols='10' id='editor'></textarea> </body> </html> 

由於我是正則表達式的新手,所以我無法弄清楚哪里出了問題,有人可以幫我解決這個問題嗎?

在出現兩個連續字符時,必須返回true。

如果我對您的理解正確。 您只想檢查一個字符串是否包含兩個連續的字符,無論哪個字符。 然后,這樣做應該足夠了:

(.)\1

現場演示

當然,這是假設它實際上是任何字符。 就像在兩個連續的空格中一樣,也是有效的匹配。

如果您只需要檢查彼此之間是否有兩顆星。 然后,您根本就不需要正則表達式。

s = "i am a new **point**";

if (s.indexOf("**") != -1)
    // it's a match

如果是因為您需要兩顆星的開始結束

begin = s.indexOf("**");
end = s.indexOf("**", begin + 1);

使用正則表達式可以做到這一點:

((.)\2)(.*?)\1

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM