Javascript检查字符串是否仅包含nbsp;

时间:2019-02-15 02:53:30

标签: javascript string detection html-entities

这可能非常琐碎,但我正在寻找一种检查字符串是否仅包含html实体nbsp;

的方法。

示例:

// checking if string ONLY CONTAINS nbsp;
'nbsp;' -> true
'nbsp;nbsp;nbsp;nbsp;' -> true
'nbsp;nbsp; HELLO WORLD nbsp;' -> false

我该怎么做?显然,最简洁高效的方法将是理想的……有什么建议吗?

3 个答案:

答案 0 :(得分:1)

使用正则表达式:

const test = str => console.log(/^(?:nbsp;)+$/.test(str));
test('nbsp;');
test('nbsp;nbsp;nbsp;nbsp;');
test('nbsp;nbsp; HELLO WORLD nbsp;');

如果您还希望允许使用空字符串,则将+(将组重复一次或多次)更改为*(将组重复零次或多次)。

答案 1 :(得分:0)

另一种方法是使用.splitSet来检查是否为“ nbsp;”。与其他项目一起出现在您的字符串中:

const check = str => new Set(str.split('nbsp;')).size == 1

console.log(check('nbsp;'));
console.log(check('nbsp;nbsp;nbsp;nbsp;'));
console.log(check('nbsp;nbsp; HELLO WORLD nbsp;'));

注意:这也会选择空格

答案 2 :(得分:0)

const input1 = 'nbsp;';
const input2 = 'nbsp;nbsp;nbsp;nbsp;';
const input3 = 'nbsp;nbsp; HELLO WORLD nbsp;';

function allSpaces(str) {
    let arr = str.trim().split(';');
    arr = arr.slice(0, arr.length - 1);
    return arr.every(str => str === 'nbsp');
}

console.log(allSpaces(input1));
console.log(allSpaces(input2));
console.log(allSpaces(input3));