为啥我不能使用正则表达式来评估 if...else 语句 [重复]
Posted
技术标签:
【中文标题】为啥我不能使用正则表达式来评估 if...else 语句 [重复]【英文标题】:Why can't I use Regex to evaluate if...else statement [duplicate]为什么我不能使用正则表达式来评估 if...else 语句 [重复] 【发布时间】:2021-02-20 23:45:29 【问题描述】:我正在尝试使用正则表达式来评估索引 0 处的 newArray
是否等于存储在 vowel
中的值。我知道这种方法不起作用,但我不明白为什么。
顺便说一句,我刚刚开始学习如何编码,所以我只知道 Vanilla JS
function translate(val)
let newArray = Array.from(val)
let vowel = /^[aeiouy]/gi
let consonant = /[^aeiouy]/
if (newArray[0] == vowel)
return 'vowel';
else if (newArray[0] == consonant)
return 'consonant'
return 'none';
translate('inglewood')
【问题讨论】:
Array.from(var)
应该是 Array.from(val)
吗?
是的!刚刚修复了@ThumChoonTat
newArray[0] == consonant
这不是正则表达式的使用方式...使用 String .match 或 RegExp .test
【参考方案1】:
您应该在这里使用正则表达式test
方法:
function translate(val)
let vowel = /^[aeiouy]/gi;
let consonant = /^[^aeiouy]/;
if (vowel.test(val))
return 'vowel';
else if (consonant.test(val))
return 'consonant'
else
return 'none';
console.log(translate('inglewood'));
注意:我认为在这里使用Array.from()
没有任何意义。相反,我们可以直接针对输入字符串运行test
。
【讨论】:
谢谢!这实际上将使我的代码更容易接下来的步骤!【参考方案2】:你需要用正则表达式.test()
字符串
function translate(val)
let newArray = Array.from(val)
let vowel = /^[aeiouy]/gi
let consonant = /[^aeiouy]/
if ( vowel.test( newArray[0] ) )
return 'vowel';
else if ( consonant.test( newArray[0] ) )
return 'consonant'
return 'none';
console.log( translate('inglewood') );
【讨论】:
以上是关于为啥我不能使用正则表达式来评估 if...else 语句 [重复]的主要内容,如果未能解决你的问题,请参考以下文章