JavaScript如何检测字符串中逗号间是否存在任意空白?
检测逗号间含任意空白的字符串合法性问题
你现在的需求是判断:如果字符串里两个逗号之间存在任意类型、任意数量的空白字符,就判定为不合法(返回false),而像,,这种逗号直接相连的情况是合法的对吧?
你之前写的includes(",,")||includes(", ,")这种方式有两个明显问题:一是只能匹配固定的无空白或两个空格的情况,没法覆盖所有空白类型(比如制表符\t、换行符\n)和任意数量的空白;二是错误地把合法的,,也当成了不合法的情况,这不符合你的核心需求。
解决这个问题最简洁精准的方式是用正则表达式,直接匹配「逗号+至少一个空白字符+逗号」的模式:
正则表达式说明
\s:匹配任意空白字符,包括空格、制表符(\t)、换行符(\n)等所有空白类型+:表示前面的模式(这里是\s)至少出现一次,也就是任意数量的空白(1个及以上)- 整个正则
/,\s+,/就能精准匹配所有「两个逗号之间有空白」的不合法情况
代码实现
function checkUrlValidity(target_url) { // 定义匹配不合法情况的正则 const invalidCommaPattern = /,\s+,/; // 如果匹配到不合法模式,返回false;否则返回true return !invalidCommaPattern.test(target_url); }
测试示例
- 输入
, ,→ 返回false(不合法) - 输入
, ,→ 返回false(不合法) - 输入
,\t,(逗号间是制表符)→ 返回false(不合法) - 输入
a,,c→ 返回true(合法,逗号间无空白) - 输入
a,b,c→ 返回true(合法,无连续逗号) - 输入
,\n,(逗号间是换行)→ 返回false(不合法)
这样就能完美覆盖你所有的检测需求啦~
内容的提问来源于stack exchange,提问作者lob0
相关产品推荐
相关产品推荐

