这可能非常琐碎,但我正在寻找一种检查字符串是否仅包含html实体nbsp;
示例:
// checking if string ONLY CONTAINS nbsp;
'nbsp;' -> true
'nbsp;nbsp;nbsp;nbsp;' -> true
'nbsp;nbsp; HELLO WORLD nbsp;' -> false
我该怎么做?显然,最简洁高效的方法将是理想的……有什么建议吗?
答案 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)
另一种方法是使用.split
和Set
来检查是否为“ 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));