说我有一个字符串:
var mystring = "01/27/2016";
然后我想检查该字符串是否包含/
:
if(mystring.match("/")){
//Then transform "01/27/2016" to "2016-01-27"
}
我怎么能实现它? 最诚挚的问候
答案 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')