这样可以,我也试过。但怎么提前面的java呢?象下面这样不行:
<script language="javascript">
var sToMatch="hello,java script";
var oRegExp=/(java)[^(script)]/;
alert(oRegExp.test(sToMatch)); //输出"true"
alert(RegExp.$1);//什么都不输出
</script>
<script language="javascript">
var sToMatch="hello,java script";
var oRegExp=/(java)[^(script)]/;
alert(oRegExp.test(sToMatch)); //输出"true"
alert(RegExp.$1);//什么都不输出
</script>
解决方案 »
- JS如何清空下拉框的值
- EXT propertygrid 求助(高手入啊) Ext.grid.property.Grid
- 有没有办法像typeof()那样,设计在执行时忽略参数是否定义的函数?
- ext.FormPanel提交后。获得的json中文乱码。。
- IE处理(渲染)FLASH的疑惑。。。。期待高人指教。
- 请教:字符串插入和修改颜色
- 如何改变Window.ShowModalDialog()弹出框的title
- 100分求:如何用JavaScript来动态生成菜单,数据结构如下,
- 我有N条<input>或者<textarea>,我怎么让它们所有的框都在输入空格或只有回车时响应alert("输入错误")???
- 急!鼠标移到连接怎么样在一个固定的地方显示连接的描述说明,那里有现成的源代码?
- js调用js广告文件,广告显示位置错行
- javscript dom问题
var sToMatch="hello,java script";
var oRegExp=/(java)[^(script)]/;
alert(oRegExp.exec(sToMatch)); //输出"true"
alert(RegExp.$1);//什么都不输出
</script>
oRegExp.exec(sToMatch);
alert(RegExp.$1);
var sToMatch="hello,java script";
var oRegExp=/(java)[^(script)]/;
oRegExp.test(sToMatch); //和 exec() 没关系
alert(RegExp.$1);//输出 "java"
</script>在第3句多了个alert,就不行了。如果是把结果赋值给一个变量,效果一样!<script language="javascript">
1:var sToMatch="hello,java script";
2:var oRegExp=/(java)[^(script)]/;
3:alert(oRegExp.test(sToMatch)); //输出 "true"
4:alert(RegExp.$1);//什么都不输出.
</script>mingxuan3000(铭轩)兄的代码有同样的问题:<script language="javascript">
var sToMatch="hello,java script";
var oRegExp=/(java)[^(script)]/;
alert(oRegExp.exec(sToMatch)); //输出"java ,java"
alert(RegExp.$1);//什么都不输出
</script>
--------------------------------------------
写完上面的用ie又试了一下,可以了(开始用firefox测的),晕!
上面是我发现的问题,共享一下。
另外 /(java)[^(script)]/ 的写法还是不行。<script language="javascript">
var sToMatch="hello,javasscript"; //把空格换成 s ,我想看看是不是只比较了'script'第一个字符。
var oRegExp=/(java)[^(script)]/;
alert(oRegExp.test(sToMatch));//ie 里输出false
alert(RegExp.$1);//什么都不输出
</script><script language="javascript">
var sToMatch="hello,javasscript";
var oRegExp=/(java)[^(script)]/;
oRegExp.test(sToMatch);//去掉alert的版本,结果一样
alert(RegExp.$1);//什么都不输出
</script>
var oRegExp=/(java)[^(script)]*/;
alert(oRegExp.test(sToMatch)); //输出"true"
alert(RegExp.$1);//什么都不输出果然是这样,我这几天正在学比较高级点的正则,有什么资料没?
像这样的,详细点的,要电子的,找了好多天
不然我也不用换你的方法啊?====
有点不明白你问什么了……
我的意思是上面的结果“什么都不输出”和是不是用exec()没关系。用test()结果是一样的,把它换成exec()并不解决问题。
上面有你要的
楼主还是具体说说为什么不用预查功能,也是因为版本的关系吗?预查功能需要版本是IE5.5以上
不同语言的正则表达式方法和规则都不太一样,包括ultraedit都不一样,目前很多语言和软件都支持了,比如vbscript,js,java,oralce等
在javascript中,
test方法是返回true或者false,而exec方法则是:
如果 exec 方法没有找到匹配,则它返回 null。如果它找到匹配,则 exec 方法返回一个数组,并且更新全局 RegExp 对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志 (g) 的 match 方法。如果为正则表达式设置了全局标志,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。exec 方法返回的数组有三个属性,分别是 input、index 和 lastIndex。Input 属性包含了整个被查找的字符串。Index 属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastIndex 属性中包含了匹配中最后一个字符的下一个位置。
http://blog.csdn.net/watersugar/archive/2006/11/26/1415640.aspx
像这样的,详细点的,要电子的,找了好多天
var p = /(java)(script)?/ig;
while (p.exec(string))
if (RegExp.$2 != "script")
alert(RegExp.$1);
这样就可以啦.就是麻烦点...
to btbtd兄弟:
需求很多是在身边,而没人去想,就拿我们自己来讲吧,我们经常写代码中差不多的方法,如果不能写成公用方法,可以输入几个变量,然后用正则自动匹配生成。至于“代码工”之类的,全是商业搞出来的,几个乱搞的家伙,为了自己的利益搞出来的。程序员还真有信的跟着一起讲的,晕倒,我一直不信印度是靠这样起来的,就算是这样也搞不长久。写程序就是为了方便人,连自己都不能方便那还... ...
DeRoshia(知秋一叶):不错的文章。
hbhbhbhbhb1021兄:不是不想用lookahead。只是现在在学习,想多几种方案。js的工具firefox有个插件就挺好用的。
muxrwc兄的方法可以吧?可能除了lookahead外没什么好方法了吧?