首页 > 解决方案 > 从用户输入更改字符串

问题描述

因为我不太确定你会怎么称呼它,所以在弄清楚这一点时遇到了一些麻烦。

我正在尝试接受用户输入并交换它,例如:

1 个日期输入:DD MM YYYY,我希望他们这样输入,然后将其更改为 YYYYDDMM 服务器端,然后再将其发送到需要去的地方。

我试过查看正则表达式和 str 替换,但它似乎没有选项可以拉出用户字符串的末尾并将其放在不同的位置。任何见解都将不胜感激,我可以在哪里找到更多帮助或前进的方向。

标签: javascriptphphtml

解决方案


如果您捕获组中日期字符串的每个部分,则可以使用正则表达式执行此操作,然后以不同的顺序回显这些组,不带空格:

const reformatDate = dateStr => dateStr.replace(/^(\d{2}) (\d{2}) (\d{4})$/, '$3$1$2');
console.log(reformatDate('05 12 2000'));
console.log(reformatDate('10 31 2010'));
console.log(reformatDate('01 01 2018'));

使用 Javascript 的.replace,$后跟传递给.replace函数的第二个参数中的数字将 替换为$#正则表达式中捕获的组。例如,$3被替换为与第三个匹配的任何内容(...)

同样的替换语法也适用于 PHP:

function reformatDate($dateStr) {
  return preg_replace('/^(\d{2}) (\d{2}) (\d{4})$/', '$3$1$2', $dateStr);
}

推荐阅读