js


//帮助显示与关闭

var helpDivName="",isCloseHelpDiv=true;
//帮助提示层名称,提示信息,层宽度,层高度,层上边距,层左边距
function helpTip(helpName,helpTitle,msg,divWidth)
{
    //checkHelp();
    var a=document.getElementById(helpName);
    a.style.display="block";
 a.style.width=divWidth+"px";
 var divLeft=divWidth-36;
 a.style.left="-"+divLeft+"px";
 msg="<a href=/"javascript:helpDivClose('"+helpName+"');/" class='closeBtn' title='点击关闭'>X</a><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td><strong>"+helpTitle+"</strong><p>"+msg+"</p></td></tr></table>";
 a.innerHTML=msg;
 helpDivName=helpName;
 isCloseHelpDiv=false;
}

function helpDivClose(divName)
{
    document.getElementById(divName).style.display="none";
}
document.onclick=checkHelp;
function checkHelp(e)
{
    if (isCloseHelpDiv==true && helpDivName!="")
    {
        document.getElementById(helpDivName).style.display='none';
    }
    isCloseHelpDiv=true;
}
//end ------------帮助显示与关闭


//判断日期格式: MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
function dateCheck(dateStr) {
 var datePat = /^(/d{1,2})(//|-)(/d{1,2})/2(/d{4})$/; // requires 4 digit year
 var matchArray = dateStr.match(datePat); // is the format ok?
 if (matchArray == null) {
  return false;
 }
 month = matchArray[1]; // parse date into variables
 day = matchArray[3];
 year = matchArray[4];
 if (month < 1 || month > 12) { // check month range
  return false;
 }
 if (day < 1 || day > 31) {
  return false;
 }
 if ((month==4 || month==6 || month==9 || month==11) && day==31) {
  return false;
 }
 if (month == 2) { // check for february 29th
  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
  if (day>29 || (day==29 && !isleap)) {
   return false;
    }
 }
 return true;
}

//判断日期格式: yyyy/mm/dd   YYYY-MM-DD
function isDate(str)
{
  var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);
  if(r==null)
  {
   return false;
  }
  var d= new Date(r[1], r[3]-1, r[4]);
  if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
  { 
   return false;
  }
  return true;
}

//去掉右边空格
String.prototype.Rtrim = function()
{
 return this.replace(/(/s*$)/g, "");
}

//得到字符串的长度(字节数)
String.prototype.len = function()
{
 return this.replace(/[^/x00-/xff]/g,"**").length;
}
 
//判断是否数字
function isDigit(s)
{
 var patrn=/^[0-9]{1,50}$/;
 if (!patrn.exec(s)) return false
 return true
}

//替换函数 
function MyReplace(s,oldStr,str)
{
  var newStr=s;
  while(newStr.indexOf(oldStr)>-1)
   newStr = newStr.replace(oldStr,str);
  return newStr;
}

//得到输入框的Value
function getValue(Field)
{
 return eval("document."+Field).value;
}

//限制输入字符长度
function textCounter(field,maxlimit)
{
    var re=0;
    var str="";
    str=field.value;
    str=str.replace(/[^/x00-/xff]/g,"**");
    if (str.length > maxlimit)
    {
        field.value=getByteOfNum(field.value,maxlimit);
        re=0;
    }
    else
    {
        re=parseInt((maxlimit-str.length)/2)
    }
   
    return re;
}

//截取字符长度,用于上面函数textCounter()中

function getByteOfNum(val, num)
{
    var ch,bytenum=0;
    var rs = "";
    var pt = /[^/x00-/xff]/;
    for (var i=0; i < num; i++)
    {
        ch = val.substr(i, 1);
        if (ch.match(pt))
        {
            bytenum += 2;
            if (bytenum > num)
            {
                return rs;
            }
        }
        else
        {
            bytenum += 1;
        }
        rs += ch;
        if (bytenum == num)
        {
            return rs;
        }
    }
   
    return rs;
}

//判断是否有效的Email格式
function IsEmail(s)
{
    if(s.length>100)
    {
        return   false;
    }
    var regu="^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[_.0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$";      
    var re=new RegExp(regu);  
    if(s.search(re) != -1)
    {
        return true;
    } 
    else
    {
        return false;
    }
}

//判断电话号码
function isTel(str)
{
    var reg=/^([0-9]|[/-])+$/g ;
    if(str.length<7 || str.length>18)
    {
        return false;
    }
    else
    {
        return reg.exec(str);
    }
}

//检验手机号码

function checkMobile(s)
{
    var regu =/^[1][3-9][0-9]{9}$/;
    var re = new RegExp(regu);
    if (re.test(s))
    {
        return true;
    }
    else
    {
        return false;
    }
}

//用在列表页面中,提示用户是否要删除

function CheckTrue()
{
    var IsTrue=0;
    var obj=document.getElementsByName("cbId");
    for (var i=0;i<obj.length;i++)
    {
        if(obj[i].name=="cbId")
        {
            if(obj[i].checked==true)
            {
                IsTrue=1;
                break;
            }
        }
    }
    if(IsTrue==1)
    {
        if(confirm('确定删除吗?'))
        {
            return true;
        }
    }
    else
    {
        alert('请选择您要操作的选项!');
        return false;
    }
   
    return false;
}
//用在列表页面中,提示用户操作选择
function CheckRelease()
{
    var IsTrue=0;
    var obj=document.getElementsByName("cbId");
    for (var i=0;i<obj.length;i++)
    {
        if(obj[i].name=="cbId")
        {
            if(obj[i].checked==true)
            {
                IsTrue=1;
                break; 
            }
        }
    }
    if(IsTrue==1)
    {
        return true;
    }
    else
    {
        alert('请选择您要操作的选项!');
        return false;
    }
   
    return false;
}

//蒯伟添加,用来sct中选择新闻保存cookie
function addCookie(objName,objValue,objHours)
{
    //添加cookie
    var str = objName + "=" + escape(objValue);
    if(objHours > 0)
    {
        //为0时不设定过期时间,浏览器关闭时cookie自动消失
        var date = new Date();
        var ms = objHours*3600*1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
   }
   document.cookie = str;
}

//获取指定名称的cookie的值,sct中选择新闻
function getCookie(objName)
{
    var arrStr = document.cookie.split(";");
    for(var i = 0;i < arrStr.length;i ++)
    {
        var temp = arrStr[i].split("=");
        if(temp[0] == objName)
        {
            return unescape(temp[1]);
        }
    }
}
//删除指定名称的cookie,sct中选择新闻
function delCookie(name)
{
    //为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = name + "=a; expires=" + date.toGMTString();
}

//智能搜索
function showlist(obj,showdiv)
 {
      // alert(obj.value);
      $(showdiv).style.display="block";
   var url = '../js/ajax.ashx';
   var pars = 't=showsearchlist&pa='+escape(obj.value);
   var myAjax = new Ajax.Updater(
   showdiv,
   url,
   {
   method: 'get',
   parameters: pars
   });
 
 }

<think>我们正在讨论的是JavaScriptjs的关系和区别。根据引用内容,可以明确以下几点: 1. **JSJavaScript的简称**:引用[3]中明确指出:“JavaScript的正式名称是‘ECMAScript’,此标准由ECMA组织发展和维护,简称‘js’”。因此,JS就是JavaScript的缩写,两者指代同一种语言。 2. **技术层面的同一性**:在编程语境中,JavaScriptjs完全等价。引用[3]在介绍语言特性时统一使用“JavaScript”或“js”一词,例如“js是一种网页编程技术”“js的特点”等,这表明两者是同一事物的不同称呼。 3. **使用场景差异(非本质区别)**: - **JavaScript**:通常在正式文档或强调语言全称时使用,例如学术论文、技术规范(如ECMAScript标准)[^3]。 - **js**:更多用于非正式场景,如文件扩展名(`.js`)、命令行工具(如Node.js)或日常技术交流中,因其简洁性而被广泛采用[^3][^4]。 4. **常见误区澄清**: - **与Java无关**:引用[3]强调“java和JavaScript的关系,就像老婆和老婆饼之间的关系”,说明尽管名称相似,但两者无任何技术关联。 - **与JSON的区别**:引用[4]指出JSON是“js对象的字符串表示法”,通过`JSON.stringify()`可将js对象转为JSON字符串,两者是数据格式与语言的关系,而非名称差异。 #### 结论 JavaScriptjs是同一编程语言的不同称谓,类似于“北京大学”与“北大”的关系。唯一细微差别在于使用场景: - 正式场合建议用 **JavaScript**(如文档标题、技术定义); - 非正式场景可用 **js**(如代码注释、文件命名)。 若需进一步探讨JavaScript的技术组成(如ECMAScript、BOM、DOM)或其与Node.js的关系,可参考其他问题延伸。 §§相关问题§§ 1. JavaScript的三大组成部分(ECMAScript、DOM、BOM)具体如何协同工作? 2. Node.js为何只能运行ECMAScript而无法使用BOM/DOM? 3. 如何正确区分JavaScript对象与JSON格式? 4. JavaScript的简称“js”在编程中有哪些具体使用规范? </think> ### JavaScriptJS的关系和区别 #### 1. **核心关系:同一事物的不同称呼** - **JSJavaScript的简称** "JS" 是 "JavaScript" 的缩写形式,两者指代完全相同的编程语言。例如: - 文件扩展名使用 `.js`(如 `script.js`) - 代码注释中常用 `// JS代码` 代替完整拼写。 - **技术规范名称** 语言的官方标准名为 **ECMAScript**(由ECMA国际组织维护),JavaScript 是该标准的实现之一,而 "JS" 是其通用简称[^3]。 #### 2. **使用场景的微妙差异** | **称呼** | **典型使用场景** | **示例** | |----------------|------------------------------------------|-----------------------------| | **JavaScript** | 正式文档、技术规范、语言定义 | "JavaScript 是一种脚本语言" | | **JS** | 非正式交流、文件/变量命名、快捷书写 | `npm install js-library` | #### 3. **常见误解澄清** - **与Java无关** 尽管名称包含 "Java",但 JavaScript 和 Java 毫无技术关联("如同老婆饼与老婆的关系")。 - **与JSON的区别** JSON(JavaScript Object Notation)是 JS 的子集,用于数据交换格式,通过 `JSON.stringify()` 可将 JS 对象转为 JSON 字符串。 例如: ```javascript const obj = { name: "张三", age: 18 }; const jsonStr = JSON.stringify(obj); // 转为JSON字符串 ``` #### 4. **技术组成(仅限JavaScript)** JavaScript 包含三部分,而 "JS" 作为简称仍涵盖所有: | **组成部分** | **功能** | **浏览器支持** | **Node.js支持** | |--------------|--------------------------------------------------------------------------|---------------|----------------| | **ECMAScript** | 核心语法(变量、函数、数据类型) | ✔️ | ✔️ | | **DOM** | 操作HTML元素(如修改页面内容) | ✔️ | ❌ [^2] | | **BOM** | 控制浏览器行为(如弹出窗口、导航) | ✔️ | ❌ [^2] | > 💡 在 Node.js 中,JS 仅支持 ECMAScript,通过扩展库(如 `fs` 模块)实现文件操作等能力[^1][^2]。 #### 总结 - **关系**:JS = JavaScript(完全等价,前者是后者的简称)。 - **区别**:仅体现在使用习惯上: - **JavaScript** 用于强调语言特性或规范 - **JS** 用于日常编码和快捷表达 技术层面无任何差异,两者均指向同一门脚本语言。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值