PascalCase
文字列を文字列に変換するにはどうすればよいunderscore_case/snake_case
ですか? ドットもアンダースコアに変換する必要があります。
例えば。変換
TypeOfData.AlphaBeta
の中へ
type_of_data_alpha_beta
PascalCase
文字列を文字列に変換するにはどうすればよいunderscore_case/snake_case
ですか? ドットもアンダースコアに変換する必要があります。
例えば。変換
TypeOfData.AlphaBeta
の中へ
type_of_data_alpha_beta
以下の手順を試すことができます。
すべての大文字をキャプチャし、前のオプションのドット文字にも一致させます。
次に、キャプチャした大文字を小文字に変換し、戻って関数を_
前の文字に置き換えます。これは、置換部分で無名関数を使用することによって実現されます。
これにより、先頭の大文字が_
+ lowercase_letter に置き換えられます。
最後に、最初のアンダースコアを削除すると、目的の出力が得られます。
var s = 'TypeOfData.AlphaBeta';
console.log(s.replace(/(?:^|\.?)([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));
また
var s = 'TypeOfData.AlphaBeta';
alert(s.replace(/\.?([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));
単語全体が大文字の場合に停止する方法。例えば。
MotorRPM
のmotor_rpm
代わりにmotor_r_p_m
?または代わりBatteryAAA
に?battery_aaa
battery_a_a_a
var s = 'MotorRMP';
alert(s.replace(/\.?([A-Z]+)/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));
1175208のコードをPython から JavaScript に移植しました。
function camelToSnakeCase(text) {
return text.replace(/(.)([A-Z][a-z]+)/, '$1_$2').replace(/([a-z0-9])([A-Z])/, '$1_$2').toLowerCase()
}
camelToSnakeCase('thisISDifficult') -> this_is_difficult
camelToSnakeCase('thisISNT') -> this_isnt
camelToSnakeCase('somethingEasyLikeThis') -> something_easy_like_this
これにより、かなり遠くまで行くことができます: https://github.com/domchristie/humps
「。」を置き換えるには、おそらく正規表現の置換を使用する必要があります。アンダースコア付き。
function toCamelCase(s) {
// remove all characters that should not be in a variable name
// as well underscores an numbers from the beginning of the string
s = s.replace(/([^a-zA-Z0-9_\- ])|^[_0-9]+/g, "").trim().toLowerCase();
// uppercase letters preceeded by a hyphen or a space
s = s.replace(/([ -]+)([a-zA-Z0-9])/g, function(a,b,c) {
return c.toUpperCase();
});
// uppercase letters following numbers
s = s.replace(/([0-9]+)([a-zA-Z])/g, function(a,b,c) {
return b + c.toUpperCase();
});
return s;
}
この機能をお試しください。