core/strings.js

  1. const decimalRegex = /^[-+]?\d*(\.\d+|\d*)(e[-+]?\d+)?$/
  2. const hexRegex = /^[-+]?[a-f0-9]+$/
  3. const octRegex = /^[-+]?[0][0-7]+$/
  4. const binRegex = /^[-+]?[01]+$/
  5. const emailRegex = /^[a-z0-9]([a-z0-9._%-+][a-z0-9]|[a-z0-9])*@[a-z0-9]([a-z0-9.-][a-z0-9]|[a-z0-9])*\.[a-z]{2,6}$/i
  6. /**
  7. * @module core/strings
  8. * @memberOf core
  9. */
  10. /**
  11. * String is decimal number
  12. * @param {String} str
  13. * @return {boolean}
  14. */
  15. function isDecimal(str) {
  16. return decimalRegex.test(str);
  17. }
  18. /**
  19. * String is binary number
  20. * @param {String} str
  21. * @return {boolean}
  22. */
  23. function isBinary(str) {
  24. return binRegex.test(str);
  25. }
  26. /**
  27. * String is octal number
  28. * @param {String} str
  29. * @return {boolean}
  30. */
  31. function isOctal(str) {
  32. return octRegex.test(str);
  33. }
  34. /**
  35. * String is hexadecimal number
  36. * @param {String} str
  37. * @return {boolean}
  38. */
  39. function isHex(str) {
  40. return hexRegex.test(str);
  41. }
  42. /**
  43. * String is valid email address
  44. * @param {String} str
  45. * @return {boolean}
  46. */
  47. function isEmail(str) {
  48. return emailRegex.test(str);
  49. }
  50. /**
  51. * String starts with sequence polyfill
  52. * @param {String} str
  53. * @param {String} seq
  54. * @return {boolean}
  55. */
  56. function startsWith(str, seq) {
  57. return str.indexOf(seq) === 0;
  58. }
  59. /**
  60. * String ends with sequence polyfill
  61. * @param {String} str
  62. * @param {String} seq
  63. * @return {boolean}
  64. */
  65. function endsWith(str, seq) {
  66. return str.indexOf(seq) === seq.length-1;
  67. }
  68. /**
  69. * String contains sequence
  70. * @param {String} str
  71. * @param {String} seq
  72. * @return {boolean}
  73. */
  74. function contains(str, seq) {
  75. return str.indexOf(seq)>=0;
  76. }
  77. module.exports = {isDecimal, isHex, isOctal, isBinary, isEmail,startsWith, endsWith, contains};