変化する
12-16-23-いくつかの言葉-今
に
12/16/23/some-words-今
ありがとう!!あなたの助けは大歓迎です。
最初の3つのダッシュの間の文字が常に数字である場合は、次のように実行できます。
variable = variable.replace(/^(\d+)-(\d+)-(\d+)-/, "$1/$2/$3/");
それらが任意の文字である可能性がある場合は、次のように実行できます。
variable = variable.replace(/^([^-]+)-([^-]+)-([^-]+)-/, "$1/$2/$3/");
作業デモ: http: //jsfiddle.net/jfriend00/YySFh/
これでうまくいくはずです:
'12-16-23-some-words-now'.replace(/^(\d+)-(\d+)-(\d+)-/g, '$1/$2/$3/');
最初の3つは常に数字ですか?
foo = foo.replace(/^(.*?)-(.*?)-(.*?)-(.*)$/, "$1/$2/$3/$4");
探す:
^([^-]*)-([^-]*)-([^-]*)-(.*)
交換:
$1/$2/$3/$4
この正確な構造は、次のように修正できます。
var string = "12-16-23-some-words-now";
var hyphensFormatted = string.substr(0, 9).replace(/-/g, "/");
var formattedString = hyphensFormatted + string.substr(9, string.length);
console.log(formattedString);