首页 新闻 会员 周边 捐助

Javascript代码的小小疑问(36)

0
[已解决问题] 解决于 2015-07-02 15:16

一. 网上抄了一段common.js,但是运行好像错误?

 function LTrim(str) {  
var whitespace = new String("\t\n\r");  
var s = new String(str);  
if (whitespace.indexOf(s.charAt(0)) != -1) {  
var j = 0,
i = s.length;  
while (j < i && whitespace.indexOf(s.charAt(j)) != -1) {  j++;  
}  s = s.substring(j, i);
}  
return s;  
}  
/*
  2.RTrim(string):去除右边的空格
  */
   
function RTrim(str) {  
var whitespace = new String("\t\n\r");  
var s = new String(str);  
if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {  
var i = s.length - 1;  
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {  i--;  
}  s = s.substring(0, i + 1);  
}  
return s;  
} 

 
/*
  3.Trim(string):去除前后空格
  */
  
function Trim(str) {
return RTrim(LTrim(str));  
}  
/*
  XMLEncode(string):对字符串进行XML编码
  */
  
function XMLEncode(str) {
str = Trim(str);  str = str.replace("&", "&amp;");  str = str.replace("<", "&lt;");  str = str.replace(">", "&gt;");  str = str.replace("'", "&apos;");  str = str.replace("\"", "&quot;");  
return str;  
}  
/*
  验证类函数
  */
  
function IsEmpty(obj) {
obj = document.getElementsByName(obj).item(0);  
if (Trim(obj.value) == "") {
alert("字段不能为空。");  
if (obj.disabled == false && obj.readOnly == false) {
obj.focus();  
}  
}  
}  
/*
  IsInt(string,string,intorstring):(测试字符串,+or-orempty,emptyor0)
  功能:判断是否为整数、正整数、负整数、正整数+0、负整数+0
  */
  
function IsInt(objStr, sign, zero) {
var reg;  
var bolzero;  
if (Trim(objStr) == "") {
return false;  
} else {  objStr = objStr.toString();  
}  
if ((sign == null) || (Trim(sign) == "")) {
sign = "+-";  
}  
if ((zero == null) || (Trim(zero) == "")) {
bolzero = false;  
} else {
zero = zero.toString();  
if (zero == "0") {
bolzero = true;  
} else {
alert("检查是否包含0参数,只可为(空、0)");  
}  
}  
switch (sign)   {  
case "+-":
 //整数
  reg = /(^-?|^\+?)\d+$/;  
break;  
case "+":
  
if (!bolzero)   {  
//正整数
  reg = /^\+?[0-9]*[1-9][0-9]*$/;  
}  
else   {  
//正整数+0
reg=/^\+?\d+$/;
reg = /^\+?[0-9]*[0-9][0-9]*$/;  
}  
break;  
case "-":
  
if (!bolzero)   {  
//负整数
  reg = /^-[0-9]*[1-9][0-9]*$/;  
}  
else   {  
//负整数+0
   //
reg = /^-\d+$/;
  reg = /^-[0-9]*[0-9][0-9]*$/;  
}  
break;  
default:
  alert("检查符号参数,只可为(空、+、-)");  
return false;  
break;  
}  
var r = objStr.match(reg);  
if (r == null) {
return false;  
}  
else {
return true;  
}  
}  
/*
  IsFloat(string,string,intorstring):(测试字符串,+or-orempty,emptyor0)
  功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
  */
  
function IsFloat(objStr, sign, zero) {
var reg;  
var bolzero;  
if (Trim(objStr) == "") {
return false;  
}  
else {
objStr = objStr.toString();  
}  
if ((sign == null) || (Trim(sign) == "")) {
sign = "+-";  
}  
if ((zero == null) || (Trim(zero) == "")) {
bolzero = false;  
}  
else {
zero = zero.toString();  
if (zero == "0") {
bolzero = true;  
}  
else {
alert("检查是否包含0参数,只可为(空、0)");  
}  
}  
switch (sign) {  
case "+-":
   //浮点数
  reg = /^((-?|\+?)\d+)(\.\d+)?$/;  
break;  
case "+":
if (!bolzero) {  
//正浮点数
reg = /^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;  
}  
else {  
//正浮点数+0
reg = /^\+?\d+(\.\d+)?$/;  
}  
break;  
case "-":
if (!bolzero) {  
//负浮点数
reg = /^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;  
}  
else {  
//负浮点数+0
reg = /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;  
}  
break;  
default:
  alert("检查符号参数,只可为(空、+、-)");  
return false;  
break;  
}  
var r = objStr.match(reg);  
if (r == null) {
return false;  
}  
else {
return true;  
}  
};

var str11 = " bi gShi t  ";  alert(Trim(str11));  //还是弹出" bi gShi t  "!  ?

Coca-code的主页 Coca-code | 初学一级 | 园豆:10
提问于:2015-07-02 08:23
< >
分享
最佳答案
0

我想newString应该不是个方法而是 new String(...) 是实例化一个String对象吧

如果这样修改下应该可以正常工作了 

奖励园豆:5
visonme | 小虾三级 |园豆:1674 | 2015-07-02 08:42

是的。复制粘贴时格式问题。但Trim(str);好像失效。。

Coca-code | 园豆:10 (初学一级) | 2015-07-02 08:49

@Coca-code: 

你的代码量太多了,但是如果只是一个简单的trim的函数的实现,我给你个prototypejs的实现吧,你可以参考下,或者去看看prototypejs的源码

function trim(str){
    return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');
}
visonme | 园豆:1674 (小虾三级) | 2015-07-02 09:04

通过正则表达式其实很容易实现的一个trim函数功能的

visonme | 园豆:1674 (小虾三级) | 2015-07-02 09:04

@visonme: 

哎,现在精简通用的js hack代码那找~

Coca-code | 园豆:10 (初学一级) | 2015-07-02 09:07

@Coca-code:  还有要提醒下,你这个是剔除左右空格的,对于字符串中间的空格是不会起任何作用的

visonme | 园豆:1674 (小虾三级) | 2015-07-02 09:07

@visonme: 

function trim(str){

return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');

};

var myStr = "a pple ";

alert(trim(myStr));  //好像没用。。?

Coca-code | 园豆:10 (初学一级) | 2015-07-02 09:11

@visonme: 还是我自己想想吧。。

Coca-code | 园豆:10 (初学一级) | 2015-07-02 11:35
其他回答(2)
0

newString 是一个方法吧?  你这个JS里面就没有newString这个方法,当然是defined了。

最初的、天空 | 园豆:40 (初学一级) | 2015-07-02 08:32

当然,英文我还是知道的。

支持(0) 反对(0) Coca-code | 园豆:10 (初学一级) | 2015-07-02 08:39

问题改了,之前问题是格式问题,把new String();粘贴成了newString();

支持(0) 反对(0) Coca-code | 园豆:10 (初学一级) | 2015-07-02 08:50
0

。。。

夏冬更迭 | 园豆:206 (菜鸟二级) | 2015-07-02 08:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册