regex 正则表达式测试字符串中的点数

ru9i0ody  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(119)

我如何测试一个字符串是否包含1个或多个点放在一起?请告诉我我在下面的代码中哪里出错了。

let text = "Is this .. all there is?";
let pattern = /[^\.+]/g; // do not allow more than one dot put together

// should return false but instead return true
let result = pattern.test(text);
console.log(result);
au9on6nz

au9on6nz1#

使用此正则表达式/\.{2,}/g
量词{}表示长度为2或2以上,并且只能将string设置为HTML内部内容,而不能直接设置为true或false等布尔值。

let text = "Is this .. all there is?";
let text2 = "Is this . all there is?";
let pattern =/\.{2,}/g;// use this regex
let result = pattern.test(text);
let result2 = pattern.test(text2);

document.getElementById("demo").innerHTML = `${text}'s result: ${result?"true":"false"}`;

document.getElementById("demo2").innerHTML = `${text2}'s result: ${result2?"true":"false"}`;
<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>
<p id="demo2"></p>

</body>
</html>
ubof19bj

ubof19bj2#

你的正则表达式不适合你的目的。它匹配列表中不存在的单个字符:[^.+](.+字符),则如果字符串包含任何不是.+的字符,则它将始终返回true
你可以检查字符串是否包含一个以上的点放在一起,使用这个模式:/\.\.+/g

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>

<script>
let text = "Is this .. all there is?";
let pattern = /\.\.+/g;// check if there is more than one dot put together 
//should return true
let result = pattern.test(text)

document.getElementById("demo").innerHTML = result;
</script>
</body>
</html>
ecr0jaav

ecr0jaav3#

  • "....."*

使用^$ sytnax,表示行的开始和结束。

var s = 'abc ... 123'
console.log(/^[^\.]+$/g.test(s))

相关问题