1.Javascript擷取字串的兩個方法
1.Javascript擷取字串的兩個方法
1.substr 方法
返回一個從指定位置開始的指定長度的子字串。
stringvar.substr(start [, length ])
引數
stringvar 必選項,要提取子字串的字串文字或String物件。
start 必選項,所需的子字串的起始位置。字串中的第一個字元的索引為0。
length 可選項,在返回的子字串中應包括的字元個數。
說明,如果length為0或負數,將返回一個空字串。如果沒有指定該引數,則子字串將延續到stringvar 的最後。
示例
下面的示例演示了substr方法的用法。
function SubstrDemo(){
var s, ss; // 宣告變數。
var s = "The rain in Spain falls mainly in the plain.";
ss = s.substr(12, 5); // 獲取子字串。
return(ss); // 返回 "Spain"。
}
2.substring方法
返回位於String物件中指定位置的子字串。
strVariable.substring(start, end)
"String Literal".substring(start, end)
引數
start 指明子字串的起始位置,該索引從 0 開始起算。
end 指明子字串的結束位置,該索引從 0 開始起算。
說明
substring 方法將返回一個包含從start到最後(不包含end)的子字串的字串。
substring方法使用start和end兩者中的較小值作為子字串的起始點。例如:strvar.substring(0, 3)和strvar.substring(3, 0)將返回相同的。
3.正確擷取單位元組和雙位元組混和字串的方法
<script type="text/javascript">
/*************************************************************
Author : Yanfu Xie <xieyanfu@yahoo.com.cn>
Url : http://www.yitu.org
Description : 正確擷取單位元組和雙位元組混和字串
String str : 要擷取的字串
Number : 擷取長度
*************************************************************/
function substr(str, len)
{
if(!str || !len) { return ''; }
//預期計數:中文2位元組,英文1位元組
var a = 0;
//迴圈計數
var i = 0;
//臨時字串
var temp = '';
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255)
{
//按照預期計數增加2
a+=2;
}
else
{
a++;
}
//如果增加計數後長度大於限定長度,就直接返回臨時字串
if(a > len) { return temp; }
//將當前內容加到臨時字串
temp += str.charAt(i);
}
//如果全部是單位元組字元,就直接返回源字串
return str;
}
var str = "呵呵he哈哈嘿嘿and";
document.write("字串:<font color='red'>"+str+"</font><br /><br />");
document.write("javascript 預設擷取10個位元組的返回值:<br />");
document.write("<font color='red'>"+str.substr(0, 10)+"</font><br /><br />");
document.write("用本文介紹的方法擷取10個位元組的返回值:<br />");
document.write("<font color='red'>"+substr(str, 10)+"</font><br /><br />");
document.write("擷取9個位元組的返回值:<br />");
document.write("<font color='red'>"+substr(str, 9)+"</font><br /><br />");
</script>
還有更簡單的方法(正則)
<script>
a="中文測試"
b="51js.com"
function dd(str,c){document.write(str.replace(/([\u0391-\uffe5])/ig,'$1a').substring(0,c).replace(/([\u0391-\uffe5])a/ig,'$1')+"<br/>")}
dd(a,8);
dd(b,8);
</script>
===================================
分割線
===================================
怎麼用JavaScript實現
程式設計:編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。
以前寫的一個Cs類,但現在突然用到JAvaScript,有點茫然了
public static string ToCut(string inputString,int len)
{
int tempLen=0;
string tempString= " ";
inputString=LoseHtml(inputString);
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i <s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}
try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}
if(tempLen> len)
break;
}
//如果截過則加上半個省略號
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length> len)
tempString=tempString.Substring(0,tempString.Length-3==0?1:tempString.Length-3)+ "… ";
return tempString;
}
===================================
分割線
===================================
一個JavaScript基礎技巧,根據一串字串中規定的字元,獲取該字元以左或以右的字串,以本例中的電子郵箱為例,它可以獲取郵箱的使用者名稱,而將使用者名稱以外的字元拋棄掉,本例項應該是比較實用的。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript擷取字串</title>
</head>
<body>
<input id="x" type="text"/>
<input type="button" onclick="x()" value="輸入郵件地址,獲取使用者名稱"/>
<script>
function x(){
var x=document.getElementById("x").value.toString();
var c=x.split("@");
document.getElementById("x").value=c[0];
}
</script>
</body>
</html>
關於js split的用法其它也不多說什麼,下面直接舉例給大家看看
複製程式碼程式碼如下:
<script language="javascript">
str="2,2,3,5,6,6"; //這是一字串
var strs= new Array(); //定義一陣列
strs=str.split(","); //字元分割
for (i=0;i<strs.length ;i++ )
{
document.write(strs[i]+"<br/>"); //分割後的字元輸出
}
</script>
輸出結果就是
複製程式碼程式碼如下:
2
2
3
5
6
6
js split就是將一字串以特定的字元分割成多個字串,大家應當一看就懂了吧。
1.substr 方法
返回一個從指定位置開始的指定長度的子字串。
stringvar.substr(start [, length ])
引數
stringvar 必選項,要提取子字串的字串文字或String物件。
start 必選項,所需的子字串的起始位置。字串中的第一個字元的索引為0。
length 可選項,在返回的子字串中應包括的字元個數。
說明,如果length為0或負數,將返回一個空字串。如果沒有指定該引數,則子字串將延續到stringvar 的最後。
示例
下面的示例演示了substr方法的用法。
function SubstrDemo(){
var s, ss; // 宣告變數。
var s = "The rain in Spain falls mainly in the plain.";
ss = s.substr(12, 5); // 獲取子字串。
return(ss); // 返回 "Spain"。
}
2.substring方法
返回位於String物件中指定位置的子字串。
strVariable.substring(start, end)
"String Literal".substring(start, end)
引數
start 指明子字串的起始位置,該索引從 0 開始起算。
end 指明子字串的結束位置,該索引從 0 開始起算。
說明
substring 方法將返回一個包含從start到最後(不包含end)的子字串的字串。
substring方法使用start和end兩者中的較小值作為子字串的起始點。例如:strvar.substring(0, 3)和strvar.substring(3, 0)將返回相同的。
3.正確擷取單位元組和雙位元組混和字串的方法
<script type="text/javascript">
/*************************************************************
Author : Yanfu Xie <xieyanfu@yahoo.com.cn>
Url : http://www.yitu.org
Description : 正確擷取單位元組和雙位元組混和字串
String str : 要擷取的字串
Number : 擷取長度
*************************************************************/
function substr(str, len)
{
if(!str || !len) { return ''; }
//預期計數:中文2位元組,英文1位元組
var a = 0;
//迴圈計數
var i = 0;
//臨時字串
var temp = '';
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255)
{
//按照預期計數增加2
a+=2;
}
else
{
a++;
}
//如果增加計數後長度大於限定長度,就直接返回臨時字串
if(a > len) { return temp; }
//將當前內容加到臨時字串
temp += str.charAt(i);
}
//如果全部是單位元組字元,就直接返回源字串
return str;
}
var str = "呵呵he哈哈嘿嘿and";
document.write("字串:<font color='red'>"+str+"</font><br /><br />");
document.write("javascript 預設擷取10個位元組的返回值:<br />");
document.write("<font color='red'>"+str.substr(0, 10)+"</font><br /><br />");
document.write("用本文介紹的方法擷取10個位元組的返回值:<br />");
document.write("<font color='red'>"+substr(str, 10)+"</font><br /><br />");
document.write("擷取9個位元組的返回值:<br />");
document.write("<font color='red'>"+substr(str, 9)+"</font><br /><br />");
</script>
還有更簡單的方法(正則)
<script>
a="中文測試"
b="51js.com"
function dd(str,c){document.write(str.replace(/([\u0391-\uffe5])/ig,'$1a').substring(0,c).replace(/([\u0391-\uffe5])a/ig,'$1')+"<br/>")}
dd(a,8);
dd(b,8);
</script>
===================================
分割線
===================================
怎麼用JavaScript實現
程式設計:編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。
以前寫的一個Cs類,但現在突然用到JAvaScript,有點茫然了
public static string ToCut(string inputString,int len)
{
int tempLen=0;
string tempString= " ";
inputString=LoseHtml(inputString);
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i <s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}
try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}
if(tempLen> len)
break;
}
//如果截過則加上半個省略號
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length> len)
tempString=tempString.Substring(0,tempString.Length-3==0?1:tempString.Length-3)+ "… ";
return tempString;
}
===================================
分割線
===================================
一個JavaScript基礎技巧,根據一串字串中規定的字元,獲取該字元以左或以右的字串,以本例中的電子郵箱為例,它可以獲取郵箱的使用者名稱,而將使用者名稱以外的字元拋棄掉,本例項應該是比較實用的。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript擷取字串</title>
</head>
<body>
<input id="x" type="text"/>
<input type="button" onclick="x()" value="輸入郵件地址,獲取使用者名稱"/>
<script>
function x(){
var x=document.getElementById("x").value.toString();
var c=x.split("@");
document.getElementById("x").value=c[0];
}
</script>
</body>
</html>
關於js split的用法其它也不多說什麼,下面直接舉例給大家看看
複製程式碼程式碼如下:
<script language="javascript">
str="2,2,3,5,6,6"; //這是一字串
var strs= new Array(); //定義一陣列
strs=str.split(","); //字元分割
for (i=0;i<strs.length ;i++ )
{
document.write(strs[i]+"<br/>"); //分割後的字元輸出
}
</script>
輸出結果就是
複製程式碼程式碼如下:
2
2
3
5
6
6
js split就是將一字串以特定的字元分割成多個字串,大家應當一看就懂了吧。
相關文章
- mysql 擷取指定的兩個字串之間的內容MySql字串
- iOS NSString字串擷取方法iOS字串
- iOS 擷取字串中兩個指定字串中間的字串iOS字串
- 字串擷取字串
- PHP字串擷取PHP字串
- php字串擷取函式,支援中文擷取PHP字串函式
- 擷取字串並補充省略號的兩種方法字串
- MySQL 字串函式:字串擷取MySql字串函式
- php中英字串擷取PHP字串
- 包含中文的字串中擷取前N個字元字串字元
- shell 擷取變數的字串變數字串
- shell擷取字串的方法字串
- android 幾個經常用到的字串的擷取Android字串
- jQuery字串擷取詳解jQuery字串
- iOS擷取NSString字串iOS字串
- Mysql字串擷取函式MySql字串函式
- Java String類,字串常量池,建立方法,字串的獲取,擷取,轉換,分割。Java字串
- /**擷取字串是方法*/字串
- Shell中的字串擷取介紹字串
- JS擷取字串方法集合JS字串
- Linux下的字串擷取詳解Linux字串
- javascript擷取指定指定區間的字串JavaScript字串
- iOS擷取特定的字串(正則匹配)iOS字串
- Linux shell指令碼的字串擷取Linux指令碼字串
- JavaScript 擷取指定指定區間字串JavaScript字串
- php 擷取中英文混合字串PHP字串
- C#常用字串擷取C#字串
- shell 使用陣列及字串擷取陣列字串
- 字串擷取 slice,substr,substring 的區別字串
- Swift 4.0 字串擷取,拼接,字串富文字顯示Swift字串
- swift 字串學習 (index用法和擷取)Swift字串Index
- php 如何擷取中文字串PHP字串
- awk取文字中兩個字串之間的部分字串
- css實現的字串擷取程式碼例項CSS字串
- 對url字串中域名的三種擷取方式字串
- ***PHP各種編碼的漢字字串擷取PHP字串
- substr()擷取前5個字元後面省略號的方法字元
- JS切割擷取字串方法總結JS字串