移动部分字符串

时间:2016-03-11 13:39:26

标签: javascript string match

说我有一个字符串:

var mystring = "01/27/2016";

然后我想检查该字符串是否包含/

if(mystring.match("/")){
//Then transform "01/27/2016" to "2016-01-27"
}

我怎么能实现它? 最诚挚的问候

5 个答案:

答案 0 :(得分:2)

您可以使用String#replace

  

/(\d+)\/(\d+)\/(\d+)/gi

     
      
  • 第一个捕获小组(\d+)

         

    \d+匹配数字[0-9]

         

    量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪心]

  •   
  • \/字面匹配字符/

  •   
  • 第二个捕获小组(\d+)

         

    \d+匹配数字[0-9]

         

    量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪心]

  •   
  • \/字面匹配字符/

  •   
  • 第3个捕获组(\d+)

         

    \d+匹配数字[0-9]

         

    量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪心]

  •   

// is replacing
document.write('01/27/2016'.replace(/(\d+)\/(\d+)\/(\d+)/gi, '$3-$1-$2') + '<br>');

// is not replacing
document.write('01.27.2016'.replace(/(\d+)\/(\d+)\/(\d+)/gi, '$3-$1-$2') + '<br>');

答案 1 :(得分:1)

没有正则表达式和split方法的解决方案

var mystring = "01/27/2016";
var t = mystring.split('/')
var res = t[2] + '-' + t[0] + '-' + t[1];
document.write('<pre>' + JSON.stringify(res,0,2) + '</pre>');

使用Array#join函数的另一种解决方案

var mystring = "01/27/2016";
var t = mystring.split('/')
var res = [t[2], t[0], t[1]].join('-');
document.write('<pre>' + JSON.stringify(res,0,2) + '</pre>');

答案 2 :(得分:0)

你可以这样做:

var myString = "01/27/2016";

if(myString.match("/")) {
  var array = myString.split("/");
  myString = array[2] + "-" + array[0] + "-" + array[1];
}

document.write(myString);

答案 3 :(得分:0)

如果您想检查字符串是否包含某个字符串或其他字符串,请使用https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

在你的例子中

 if(mystring.indexOf('/') > -1){
   //Then transform "01/27/2016" to "2016-01-27"
   }

答案 4 :(得分:0)

我建议使用库moment.js

如果您想要更改日期格式MM / DD / YYYY到YYYY-MM-DD

var mystring = "01/27/2016",
    dateformatted = moment(mystring,'MM/DD/YYYY').format('YYYY-MM-DD')