提问人:Colton 提问时间:11/16/2023 最后编辑:Colton 更新时间:11/17/2023 访问量:43
正则表达式与用户输入中的空格不匹配的变量
Variable with regex not matching with a space in user input
问:
我目前正在尝试创建一个转换工具,让人们根据他们想要的份量转换食谱。
也就是说,我在尝试匹配输入的字母时遇到了问题。基本上,如果用户在输入中输入了一些字母,我想在结果中返回这些字母。
例如,有人输入 1/2 杯面粉,可能会返回 1 杯面粉。
在此示例中,您将提取“Cup Flour”文本,并在新值中返回该文本和数字。
我本来打算使用一些这样的代码来输出结果:
// Extract Words
var letters = originalMeasurementsString.match(/[a-zA-Z\s]/g);
$('#resizedMeasurements').html(resizedWholeNumber + resizedDecimal + letters.join(''));
在下面的代码中,我有 3 个主要不同的 if/else 语句,每个语句都与这些语句中的不同语句相关联,以检查分数类型满足的其他各种条件:
// Checks For Mixed Fraction User Input - For Example: 1 1/2 Cup
if (originalMeasurements.includes(' ')) {
}
// Checks For Single Fraction User Input - For Example: 1/2 Cup
else if (originalMeasurements.includes('/')) {
}
// Then the Final Else Statement for a Whole Number User Input - For Example: 1 Cup
此解决方案适用于混合分数,因为 if 语句正在检查空格。
如果您输入例如 1/2cup,它也适用于单个分数。问题是如何绕过我希望我的用户能够包含空格的事实,例如,他们可能会输入 1/2 杯。
由于函数中的 应该寻找空格,我有点困惑为什么这不会导致单分数语句在用户输入中使用空格。\s
.match()
/[a-zA-Z\s]/g
有没有人可以建议我如何调整此代码以接受带有空格的用户输入?
我还尝试调整上面的else if语句,首先检查/然后在其中放置一个if语句以检查空格'',但这也没有用。
此外,我采取的另一种方法是合并语句,例如:
else if (originalMeasurements.includes('/') && originalMeasurements.includes(' ')) {}
但这也没有用。
答:
0赞
Colton
11/17/2023
#1
更新:找到答案
我找到了另一种解决方案。我没有使用 includes 进行 if/else 语句搜索,而是找到了一种更好的方法,根据预期的输入对单独的变量使用正则表达式,然后我在 if/else 语句下相应地对其进行了测试。
评论