谁能解释一下这段代码?
Can anyone please explain this piece of code?
do{
var string1=prompt("Enter text");
} while(!string1||!/^[a-zA-Z\s]*$/.test(string1));
谁能详细解释一下里面的情况?
!string
如果字符串不为空则为真,意思是
string !== '' && string !== null && string !== false && string !== undefined
正则表达式 /^[a-zA-Z\s]*$/
匹配任何只包含 letter/whitespace 的字符串,通过执行 !
我们想要相反的结果。一个字符串,至少包含一个不是 letter/whitespace
的字符
.test
方法根据给定字符串计算正则表达式,如果模式与字符串匹配,则 return 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)}`);
});
do{
var string1=prompt("Enter text");
} while(!string1||!/^[a-zA-Z\s]*$/.test(string1));
谁能详细解释一下里面的情况?
!string
如果字符串不为空则为真,意思是
string !== '' && string !== null && string !== false && string !== undefined
正则表达式 /^[a-zA-Z\s]*$/
匹配任何只包含 letter/whitespace 的字符串,通过执行 !
我们想要相反的结果。一个字符串,至少包含一个不是 letter/whitespace
.test
方法根据给定字符串计算正则表达式,如果模式与字符串匹配,则 return 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)}`);
});