Javascript将PascalCase转换为underscore_case [英] Javascript convert PascalCase to underscore_case

查看:48
本文介绍了Javascript将PascalCase转换为underscore_case的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将PascalCase字符串转换为underscore_case字符串?我还需要将点转换为下划线.

How can I convert PascalCase string into underscore_case string? I need conversion of dots to underscore as well.

例如转换

TypeOfData.AlphaBeta

进入

type_of_data_alpha_beta

推荐答案

您可以尝试以下步骤.

  • 捕获所有大写字母并匹配前面的可选点字符.

  • Capture all the uppercase letters and also match the preceding optional dot character.

然后将捕获的大写字母转换为小写,然后返回以_作为替换字符的替换功能.这将通过在替换部分中使用匿名功能来实现.

Then convert the captured uppercase letters to lowercase and then return back to replace function with an _ as preceding character. This will be achieved by using anonymous function in the replacement part.

这会将起始大写字母替换为_ + lowercase_letter.

This would replace the starting uppercase letter to _ + lowercase_letter.

最后删除下划线将为您提供所需的输出.

Finally removing the starting underscore will give you the desired output.

var s = 'TypeOfData.AlphaBeta';
console.log(s.replace(/(?:^|\.?)([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));

OR

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?

any way to stop it for when a whole word is in uppercase. eg. MotorRPM into motor_rpm instead of motor_r_p_m? or BatteryAAA into battery_aaa instead of battery_a_a_a?

var s = 'MotorRMP';
alert(s.replace(/\.?([A-Z]+)/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));

这篇关于Javascript将PascalCase转换为underscore_case的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆