在 2 个符号的索引处查找并拆分字符串
Find and split string at index of 2 symbols
我正在做一些本地化编码,我正在尝试分离可能的替代方案。例如,我想从"en-US"或"en_US"中获取"en"。我已经为第一个选项制定了如何做到这一点,但我正在寻找最干净的方法来为连字符和下划线做到这一点。我首先想检查它是否可以拆分,这样我就不会在主要和备用区域设置中都使用"en"和"en"。
if (currLoc && currLoc.indexOf('-') > -1) {
altLoc = currLoc.substring(0, currLoc.indexOf('-'));
}
如果您希望
字符串不是任意的,而只是en-US
或en_US
或空或en
。试试这段代码。
if(curLoc) {
altLoc = currLoc.replace('-', '_').split('_')[0];
}
实际上,如果currLoc
是空字符串,则可以省略if(curLoc)
条件,在这种情况下,您的altLoc
也将是空字符串。
怎么样
if ( currLoc ){
if( currLoc.indexOf('-') > -1)
altLoc = currLoc.substring(0, currLoc.indexOf( '-' ));
else if( currLoc.indexOf('_') > -1 )
altLoc = currLoc.substring(0, currLoc.indexOf( '_' ));
}
var matches = new RegExp(/(.{2}).[-_](.{2})/gi).exec("fdgf-fed");
if (matches != null)
altLoc = matches[1];
var str = 'en_US';
var str1 = 'en-US';
var arr = str.replace(/[_-]/g, " ").split(" ");
arr[0] //en
arr[1] //US
var arr1 = str1.replace(/[_-]/g, " ").split(" ");
arr1[0] //en
arr1[1] //US
对于正则表达式方法,您可以使用:
var reg = new RegExp(/^([a-z]{2})[^0-9]|[^a-z]|[^A-Z].+/g);
var result = reg.exec(text);
//result[1] <-- first group: "en" in case of "en_Us,en_US,en-US..."
相关文章:
- 正在全局范围中查找JavaScript函数
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 拆分单词jquery
- es6 相当于下划线查找位置
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在不传递此信息的情况下查找被调用的元素
- Lodash 从值数组中查找数组中的值
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 使用RegExp查找url中的字符
- 查找元素高度,包括边距
- 将字符串拆分为数组时出现JavaScript错误
- 使用JS查找数组的平均值
- 在JavaScript中拆分日期字符串的更好方法是什么
- 在 2 个符号的索引处查找并拆分字符串
- 通过查找关键字将Javascript字符串拆分为字符串数组
- 将字符串拆分为单词数组以查找“最长”
- javascript拆分-用于查找后面的替代项