任何人都可以解释这段代码吗?

时间:2018-04-10 01:49:19

标签: javascript regex do-loops

do{    
         var string1=prompt("Enter text");     
} while(!string1||!/^[a-zA-Z\s]*$/.test(string1));

有人可以详细向我解释一下里面的情况吗?

1 个答案:

答案 0 :(得分:2)

如果字符串不为空,

!string将为true,这意味着 string !== '' && string !== null && string !== false && string !== undefined

正则表达式/^[a-zA-Z\s]*$/匹配任何只包含字母/空格的字符串,并且通过!我们想要反对网站。包含至少一个不是字母/空格的字符的字符串

enter image description here

.test方法针对给定字符串计算正则表达式,如果模式与字符串匹配,则返回true

所以:

'333' // true
' 333' // true
'aaa' // false
'   ' // false
'3a3' // true

const arr = [
  '333', // I have at least 1 non letter/whitespace
  '444', // I have at least 1 non letter/whitespace
  ' 44', // I have at least 1 non letter/whitespace
  'a$', // I have at least 1 non letter/whitespace
  'aaaa', // false
  'ZZZ', // false
  '   ', // false
  '"$a%' // I have at least 1 non letter/whitespace
];

arr.forEach(string => {
  console.log(`${string}: ${!/^[a-zA-Z\s]*$/.test(string)}`);
});