龙空技术网

七爪源码:如何在 JavaScript 中检查字符串是否仅包含字母和空格

庄志炎 185

前言:

而今我们对“js正则空格”都比较关注,你们都想要分析一些“js正则空格”的相关资讯。那么小编也在网上收集了一些对于“js正则空格””的相关知识,希望兄弟们能喜欢,看官们快快来了解一下吧!

1. RegExp test() 方法

要在 JavaScript 中检查字符串是否仅包含字母和空格,请在此正则表达式上调用 test() 方法:/^[A-Za-z\s]*$/。 如果字符串仅包含字母和空格,则此方法返回 true。 否则,它返回 false。

function onlyLettersAndSpaces(str) {  return /^[A-Za-z\s]*$/.test(str);}const str1 = 'contains_underscore';const str2 = 'only letters and spaces';console.log(onlyLettersAndSpaces(str1)); // falseconsole.log(onlyLettersAndSpaces(str2)); // true

RegExp test() 方法搜索正则表达式和指定字符串之间的匹配项。

/ 和 / 字符用于开始和结束正则表达式。

^ 字符匹配字符串的开头,而 $ 字符匹配字符串的结尾。

方括号 ([]) 用于匹配多个指定模式中的任何一个。 在我们的示例中,我们指定了三种模式:A-Z、a-z 和 \s。 A-Z 匹配任何大写字母,a-z 匹配任何小写字母,0-9 匹配任何数字。

* 字符匹配特定模式的零次或多次出现。 我们在方括号之后添加它,以尽可能多地匹配括号中的任何模式。

如何检查字符串是否至少包含一个字母和一个空格

如果字符串仅包含字母或仅包含空格,我们使用的正则表达式使该方法返回 true。

const str1 = 'OnlyLetters';const str2 = '  '; // only spacesconst str3 = 'letters and spaces';console.log(onlyLettersAndSpaces(str1)); // trueconsole.log(onlyLettersAndSpaces(str2)); // trueconsole.log(onlyLettersAndSpaces(str3)); // true

为确保字符串至少包含一个字母和一个空格,我们需要将字符串与匹配至少一个字母 (/[A-Za-z]/) 的正则表达式和至少匹配一个字母的正则表达式进行匹配 空间/\s/。

function atLeastOneLetterAndSpace(str) {  return (    /^[A-Za-z\s]*$/.test(str) &&    /[A-Za-z]/.test(str) &&    /\s/.test(str)  );}const str1 = 'OnlyLetters';const str2 = '  '; // Only spacesconst str3 = 'letters and spaces';console.log(atLeastOneLetterAndSpace(str1)); // falseconsole.log(atLeastOneLetterAndSpace(str2)); // falseconsole.log(atLeastOneLetterAndSpace(str3)); // true

2.字符串match()方法

我们还可以使用 String match() 方法来检查字符串是否只包含字母和空格。

function onlyLettersAndSpaces(str) {  return Boolean(str?.match(/^[A-Za-z\s]*$/));}const str1 = 'contains_underscore';const str2 = 'only letters and spaces';console.log(onlyLettersAndSpaces(str1)); // falseconsole.log(onlyLettersAndSpaces(str2)); // true

String match() 方法返回字符串中正则表达式的所有匹配项的数组。 如果没有匹配,则返回 null。

const regex = /^[A-Za-z\s]*$/;const str1 = 'contains_underscore';const str2 = 'only letters and spaces';// nullconsole.log(str1?.match(regex));/**[  'only letters and spaces',  index: 0,  input: 'only letters and spaces',  groups: undefined] */console.log(str2?.match(regex));

我们将 match() 的结果传递给布尔构造函数以将其转换为布尔值。 Boolean() 将真值转换为真,将假值转换为假。

在 JavaScript 中,有六个假值:undefined、null、NaN、0、''(空字符串)和 false。 其他所有值都是真实的。

console.log(Boolean(undefined)); // falseconsole.log(Boolean(['letters'])); // trueconsole.log(Boolean(null)); // falseconsole.log(Boolean(5)); // true

我们在字符串变量上使用了可选的链接运算符 (?.)。 如果变量为空(未定义或为空),当我们尝试对其调用 match() 方法时不会抛出错误,此运算符将阻止方法调用并返回未定义。

const str = null;console.log(str?.match(/^[A-Za-z\s]*$/)); // undefined

关注七爪网,获取更多APP/小程序/网站源码资源!

标签: #js正则空格