我有喜欢的课程代码列表:jQuery的 - 当整数或空间中发现拆分(即拆分课程代码)
CRS100
CRS301
CRS332
...etc.
我想拆分这些课程代码,这样我可以做这样的事情:
<a data-courseProgram="CRS" data-courseCode="301">CRS301</a>
任何帮助,将不胜感激:)
我有喜欢的课程代码列表:jQuery的 - 当整数或空间中发现拆分(即拆分课程代码)
CRS100
CRS301
CRS332
...etc.
我想拆分这些课程代码,这样我可以做这样的事情:
<a data-courseProgram="CRS" data-courseCode="301">CRS301</a>
任何帮助,将不胜感激:)
所有你想要做的分割标识加入一半的前三个字母是一致的,剩下的就是ID,所以你可以做这样的事情,
var s = 'CRS332'; //course ID
var i = s.length/2; //split the string into half
var course = s.substr(0, i); //gives you CRS
var courseId = s.substr(i); //gives you 332
有一个更优雅的解决方案,你也可以使用正则表达式和字符串分割成两个部分,像
var str = 'CRS332';
var splitId = str.match(/.{1,3}/g);
console.log(splitId); //outputs ['CRS', '332'];
现在,您可以像使用分别splitId[0]
和splitId[1]
上面的一个。
如果你有一个像CRS332和CRS 332(中间有空格),可以使用下面的代码(我刚写和小提琴测试,可能会错过,你必须处理极端情况)
ID的组合//all ids, and create a new container to push the splitted ids
var dir = ['CRS 332', 'CRS447'], newDir = [];
//loop all the course ids
for(var i = 0, l = dir.length; i < l; i++) {
//if space exists, split it
if(dir[i].indexOf(' ') !== -1) {
//space exists in the string, do a normal split
newDir.push(dir[i].split(' '));
} else {
//if no space, split it in half
newDir.push(dir[i].match(/.{1,3}/g));
}
}
console.log(newDir);
另外,你的问题还不清楚,如果你说你的课程编号也可以有空格,只要放入并且如果条件检查字符串的长度,如果它超过6,这很简单,你可以使用''YOUR STRING'.split('')'它会为你分割 –
感谢您的详细解答,队友! – ymdahi
都是ids 6的长度吗? –
是的,6个字符。尽管如此,也能很好地解释课程代码之间的空白。例如,考虑'CRS 301'。 – ymdahi