标签: Javascript

正则表达式匹配“特定字符或开头或结尾”的方法

这个需求在标签搜索中常要用到,假设数据库中有类似以下标签字段字符串: 红色,樱桃红色,红色,玫红色,红宝石,红色尖晶石,玫红色石榴石,红色 这里我们要找完全匹配于“红色”的标签,为了方便测试准确性,我们使“红色”出现在了最前面、中间、最后面。 “红色”两个字前面可能是“,”或字符串开头,后面可能是“,”或字符串结尾,起先我想到的就是方括号匹配“[,^]”和”[,$]”,然而这根本不管用(C#、Mongodb和Javascript中都无效),原因不明,后来琢磨了半天,只能采用这样的形式才能匹配成功:”(^|,)”和”(,|$)” 最终的表达式为:(^|,)s*红色s*(,|$) 我们来检验一下: 替换后的结果: 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

JQuery实现CheckBox的全选、取消全选、反选功能

在新版JQuery中一定要通过prop方法实现,而不是以前的attr方法,否则会出现第一次管用,再点就无效的问题。 有关区别详情参看:jQuery学习之prop和attr的区别 以下为实现代码,该代码会操作所有name属性为product的复选框。 (其中class为glyphicon的span标签是Bootstarp的图标表现方式,不需在意) <a href=”javascript:$(‘input[name=’product’]’).prop(‘checked’,true);” target=”_self” class=”btn btn-link ” role=”button”><span class=”glyphicon glyphicon-check”></span> 选择全部</a> <a href=”javascript:$(‘input[name=’product’]’).prop(‘checked’,false);” target=”_self” class=”btn btn-link ” role=”button”...

更多

JQueryMobile使用Ajax跳转后Popup组件失效问题溯源

今天遇到了同样问题,通过此文思路成功解决。 多个页面间也必须要保证ID唯一性,这真是有点麻烦,看来最好就是直接用Guid.NewGuid()为ID赋值了。 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

实现网页客户端实时自动解析Markdown为HTML内容

目前大多数相关项目实现的都是服务器端的Markdown语法解析,解析后将HTML代码返回给客户端,比如这个C#的项目:markdownsharp 我感觉这么轻量的格式没必要浪费服务器运算及带宽资源,还是通过Javascript实现客户端解析的方法最为实用,而且客户端解析的方式还能实现实时的所见即所得对照编辑,非常方便。 多番寻找和尝试,最终选定了markdown-js 首先从这里下载其浏览器版: https://github.com/evilstreak/markdown-js/releases 解压缩后在其js文件同目录下新建一个网页进行测试,代码如下: <!DOCTYPE html> <html> <body> <textarea id=”text-input” oninput=”this.editor.update()” rows=”6″ cols=”60″>Type **Markdown** here.</textarea> <div id=”preview”> </div> <scrip...

更多

在MongoDB中查询GUID类型数据的方法

MongoDB不支持GUID,存入数据库的GUID通常是这样表示的: /* 0 */ { “_id” : new BinData(3, “Fl109F7FZkOeJN9eq8Hsvw==”), “_t” : “源文件”, “创建时间” : ISODate(“2014-07-15T08:46:30.115Z”), “创建者用户名” : “hekang”, “最后修改时间” : ISODate(“2014-07-15T08:46:30.115Z”), “最后修改者用户名” : “hekang”, “名称” : “z.jcd”, “说明” : null, “容量” : 125105, “原扩展名” : “.jcd”, “文件编号” : ObjectId(“53eeccfc06cb1957149829b0”), “主校验编码” : “1aacb589cb9d4ca65fafef4cec54e22c”, “辅校验编码” : “22556785” } 第三行所显示的即是我们的GUID类型的名为“Id”的属性通过C#官方驱动存入数据库后的形式。 这是Base64类型的值,通过下面这段Javascri...

更多

实用的Mongodb官方驱动辅助扩展方法

因为实测使用Lambda表达式查询的效率并不比标准Api差,所以我希望尽可能地使用Lambda表达式来完成Mongodb的查询工作。 这些扩展方法能够实现便捷的Lambda查询,例如: c.Find(q => !q.性别 && q.身高 > 1.8 && q.存款 > 5000) 当然有些地方还是会需要用到标准Api的,这里也为多条件过滤式查询提供了更方便的调用方式: c.Find(Query<数据>.EQ(q => q.性别, false), Query<数据>.GTE(q => q.身高, 1.8)) 另外也对Javascript代码方式的查询调用方式做了优化,这也是很常用的使用方式,适合于在后台让管理员自定义查询代码进行查询: c.Find(“this.性别==false&&this.身高>=1.89&&this.生日.getFullYear()>=1995”) 但须注意,Javascript使用的是$where方式查询,速度比较慢,上述查询在10万条...

更多

振奋人心的转变——微软新战略

纳德拉上台以来,微软的各项举动都转向了开明开放,业界评价很好,微软此次借Connect大会带来了开发界的新风,令人倍感振奋。 这里做一下简评,详细情况可以参看这篇博文:http://www.cnblogs.com/micua/p/new-microsoft.html 首先专业级的顶级开发工具Visual Studio 2013社区版彻底免费,允许个人和小型企业免费使用和开发付费商业软件,作为世界顶尖的IDE,这对开发者诱惑力相当之大。 接着通过Apache Cordova、Clang、LLVM,充分支持了多移动平台的Web App、原生App应用开发。通过Visual Studio使用C#快速开发App,并同时适配Android、IOS、WindowsPhone,将有可能实现。 同时.Net框架开源这一举措结合之前放出的ASP.NET vNext,能够充分加速.Net托管程序的跨平台步伐。 这样使用微软优质、高效的技术,从开发到部署也可以做到全程免费,会对于企业很有吸引力。 这是个洗牌的时代,相信通过这样的战略: 语言方面,C#的使用率会飞快攀升。经过多年的发展,C#的杰出特性已无须赘...

更多

在 JQuery Mobile 中实现瀑布流图库布局

先来看在Windows系统的1080P显示器中显示的效果: 这个整合方式几乎没有现存的实例,是自己总结出来的方法,在此记录下来。 首先访问Masonry官网下载masonry.pkgd.min.js:http://masonry.desandro.com/ 将其整合到项目中,在页面中引入。 初始化id变量,让页面每次加载时的id都不同,避免 Ajax 加载时id重复造成难以察觉的错误。 var id = “gallerycontent” + Guid.NewGuid(); 采用HTML初始化方式进行初始化: <div id=”@id” style=”margin: 50px auto;” class=”js-masonry” data-masonry-options='{ “isFitWidth”: true, “itemSelector”: “.post” }’> …. …. …. </div> 以上为外部容器代码。id属性使用前面的变量;style属性和后面的isFitWidth选项共同实现了容器自动水平方向居中功能;我没有像Masonry入门教...

更多

网页内嵌Windows Media Player播放器的多文件播放方法

网页内嵌Media Player播放器很简单,以下代码即可完成一个简单的播放器: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta content=”text/html; charset=utf-8″ http-equiv=”Content-Type” /> <title>音乐播放器÷</title> </head> <body> <object height=”200″ type=”video/x-ms-wmv” width=”200″> <param name=”filename” value=”C:UsersSkyDMusicGroove Coverage...

更多

防止自建控件与页面间重复引入客户端js脚本的方法

我们在创建自定义的服务器端控件或是用户控件时,经常需要用到一些客户端js脚本,通常将其作为资源嵌入,并在页面后台代码中添加引用,但是如若用到一些通用的js库(比如JQuery)时,就免不了产生一个疑问: 如果使用此控件的页面也需要用到该库时怎么办? 在控件中引入,在页面中也引入,不就会造成页面中引入两次同一个或是两个版本的js库吗?这不仅逻辑不通,而且可能浪费资源。 如是不在控件中引入,但要求页面中必须引入,那么拿给别人使用时免不了让他一头雾水,甚至某一天你自己都忘了这回事,对着一堆js错误挠头。 本文将演示整个编写流程,并提供正确的做法演示: 首先建立一个名为”客户端脚本引用测试”的网站项目(注意是网站项目): 接着在解决方案中添加一个服务器控件项目,名为”测试服务器控件”: 修改测试服务器控件项目中的ServerControl1.cs中的代码,设置Text属性的DefaultValue: 更改RenderContents事件实现内容为下面的代码用以输出基本的客户端呈现外观:   output.Write(string.For...

更多