SUBSTRING_INDEX()在MySQL中返回指定次数的分隔符之前的字符串中的子字符串。JavaScript等同于MySQL的函数SUBSTRING_INDEX()
在JavaScript中是否有任何等价的函数?我需要执行相同的事情......但在JavaScript中的字符串值。
SUBSTRING_INDEX()在MySQL中返回指定次数的分隔符之前的字符串中的子字符串。JavaScript等同于MySQL的函数SUBSTRING_INDEX()
在JavaScript中是否有任何等价的函数?我需要执行相同的事情......但在JavaScript中的字符串值。
的MySQL:
SELECT SUBSTRING_INDEX('www.stackoverflow.com', '.', 1) result;
+--------+
| result |
+--------+
| www |
+--------+
1 row in set (0.00 sec)
SELECT SUBSTRING_INDEX('www.stackoverflow.com', '.', 2) result;
+-------------------+
| result |
+-------------------+
| www.stackoverflow |
+-------------------+
1 row in set (0.00 sec)
的JavaScript:
function substringIndex (input, delimiter, index) {
var arr = input.split(delimiter);
arr.splice(index, arr.length - index);
return arr.join(delimiter);
}
console.log(substringIndex('www.stackoverflow.com', '.', 1));
// www
console.log(substringIndex('www.stackoverflow.com', '.', 2));
// www.stackoverflow
的indexOf可能是你所追求的:http://www.w3schools.com/jsref/jsref_IndexOf.asp
当然,你得有像SUBSTR这种结合:http://www.w3schools.com/jsref/jsref_substr.asp
编辑: 我越看着进入这一点,就越难以给出与你正在寻找的东西完全相同的东西。这样做的一个方法是使用Regular Expression,或者,我写了一个简单的小功能,可以让你使用语法几乎等同于SUBSTRING_INDEX()
function substringIndex(str, char, occurrence){
var newStr = '';
var occurrenceMatches = 0;
for (var i=0; str.length; i++){
if (str.charAt(i)==char) occurrenceMatches++;
if (occurrenceMatches==occurrence) break;
newStr += str.charAt(i);
}
return newStr;
}
alert(substringIndex('www.mysql.com', '.', 2));
那我的拼接,拼接,连接方法呢?它看起来相当于MySQL函数,并且比你建议的for循环方法更简洁一些。 – 2010-10-01 14:42:11
同意。你的例子更漂亮。 – Bart 2010-10-01 14:48:27
我知道一个古老的问题,但只是为了记录和万一它有助于任何人,以下是略有更新这个选择的答案允许substring_index和MySQL一样工作,也就是允许负指数。
function substring_index(input, delimiter, index) {
var arr = input.split(delimiter);
if(index < 0){
index = arr.length + index;
arr.splice(0, index);
}else{
arr.splice(index, arr.length - index);
}
return arr.join(delimiter);
}
不错..谢谢.. :) – 2010-10-10 21:11:05