javascript - Ramda,检查字符串是否有效

标签 javascript ecmascript-6 ramda.js

有效值:

  • 是字符串还是数字(R.is(string), R.is(number)
  • 不等于“-”、“$”和“0”
  • 不为 null、false、未定义或 NaN (Number.isNaN)

如何使用 ramda 创建一个 const isValid = ... 函数?

where 函数已关闭 https://ramdajs.com/docs/#where 。但它只接受和反对您可以检查每个 Prop 的地方。

both 函数仅接受两个参数。

最佳答案

如果将类型检查和内容检查分开,您仍然可以使用两者:

const isValid = both(
  either(is(String), is(Number)),
  complement(anyPass([
    isNil, 
    equals('0'),
    equals('-'),
    equals('$'),
    equals(NaN),
    equals(false)
  ]))
);

console.log(isValid([]));
console.log(isValid(1));
console.log(isValid(NaN));
console.log(isValid('foo'));
console.log(isValid('$'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>
<script>const {both, either, is, complement, anyPass, isNil, equals} = R;</script>

关于javascript - Ramda,检查字符串是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183296/

相关文章:

javascript - 将 36 进制转为 BigInt?

javascript - 确定给定名称的类是否存在

javascript - 用reduce代替filter来计算范围内的对象

javascript - TypeScript Angular - 将字符串添加到数字属性会导致值为零 (0)

Javascript 表单验证提交功能

javascript - 通过 ramda.js 使用高阶函数进行映射

javascript - 了解 Ramda.js

javascript - 从一个未柯里化(Currying)的函数组成一个函数

javascript - 使用指令在 Angular 中呈现 html

javascript - react : How to sort data in asc and desc in ReactJS