gpt4 book ai didi

javascript - 如何创建一个正则表达式来检查字符串是否包含 JavaScript 中的特定模式?

转载 作者:行者123 更新时间:2023-12-03 04:28:25 25 4
gpt4 key购买 nike

我有一个要求,我需要遍历字符串并获取特定模式的第一次出现,如下所示,

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>

由于我是正则表达式的新手,我无法弄清楚我错在哪里。有人可以帮我解决这个问题吗?

最佳答案

On the occurrence of two consecutive character it must return true.

如果我没理解错的话。您只想检查字符串是否包含两个连续的字符,无论是哪个字符。那么这样做就足够了:

(.)\1

Live Demo

这当然是假设它实际上是任何字符。因为两个连续的空格也是有效的匹配。

如果您只需要检查是否有两颗星在彼此之后。那么你根本就不需要正则表达式。

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

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

如果是因为您需要两颗星的开始结束

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

使用正则表达式可以这样做:

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

Live Demo

关于javascript - 如何创建一个正则表达式来检查字符串是否包含 JavaScript 中的特定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43601442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com