57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比
这里有这样一个字符串,我想取出文字内容和图片上面的data-labface的属性,按照顺序组成一个数组,
这是一段,用户自行输入的文本内容。
问一下:
这个确实是用户输入的字符串吗? 还是用户输入内容的html源码?
个人觉得既然是js里面做, 可以考虑下面方式:
var srcStr = '57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比' // "<"和"img"之间有个空格, 这不是合法的html. .replace(/< img/g, '
今儿个心情好,做一下活雷锋
JavaScript:
====================
var myregexp = /src="([^"]+)" class="face-pic" data-labface="(\d+)"/img;
var match = myregexp.exec(subject);
while (match != null) {
for (var i = 0; i < match.length; i++) {
// matched text: match[i]
}
match = myregexp.exec(subject);
}
Java:
====================
try {
Pattern regex = Pattern.compile("src=\"([^\"]+)\" class=\"face-pic\" data-labface=\"(\\d+)\"", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
for (int i = 1; i <= regexMatcher.groupCount(); i++) {
// matched text: regexMatcher.group(i)
// match start: regexMatcher.start(i)
// match end: regexMatcher.end(i)
}
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
php
=================
preg_match_all('/src="([^"]+)" class="face-pic" data-labface="(\d+)"/im', $subject, $result, PREG_SET_ORDER);
for ($matchi = 0; $matchi < count($result); $matchi++) {
for ($backrefi = 0; $backrefi < count($result[$matchi]); $backrefi++) {
# Matched text = $result[$matchi][$backrefi];
}
}
js代码:
console.log('57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比'.match(/data-labface="[0-9]+"/gi));
/data-labface="[0-9]+"/gi
==========================
nginx +tomcat+memcached集群,写session不生效:报错
(2台)tomcat+memcached做了集群,sessionID在不同tomcat上相同的,但是给session赋值的时候,发现两边session不同步.非要给nginx 的upstream 配置上 jvm参数后,才能同步,这样配置对不?
还是配置的问题吧,如果你给nginx加上配置可以的话,那就不是mem的共享session了,而是nginx提供的session,
所以你需要配置的还是tomcat与mem之间的session共享问题
附:
多个tomcat要一起协同工作有几种办法,可以考虑的方案有以下几个:
1.使用tomcat自带的cluster方式,多个tomcat见自动实时复制session信息,配置起来很简单。但这个方案的效率比较低,在大并发下表现并不好。
2.利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但是我们的应用很可能是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。
3. 利用memcached把多个tomcat的session集中管理,这是最直接的解决方案,但是操作起来也最为复杂。
我们的系统既要求性能,又要比较好的利用上负载均衡,所以第3个方案是首选。接下来就是安装搭建之路了。
session写进memcached了.打开页面的时候,发现两边tomcat的session内容一致,当给某个session.setattribute后,两边就不一样,删除也是
我们使用memcached共享.context.xml的配置.这样设置有问题吗
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.24.60.2:12000" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
######
@蟋蟀哥哥
memcached不一定非要2台吧?
######一台。。我也认为是客户端轮询两台webserver造成的问题。
nginx hash下。。应该能解决
######@ 蟋蟀哥哥 要是hash的话,服务器宕机,还是没办法无缝切换 .######一台的话系统形成单点了, 可靠性有问题######@ JackyYeong memcached确实只有一台,主要问题是tomcat2台之间session不复制,在nginx上使用hash策略,也不能保证宕机切换状态保持.######session可以共享了,但是刷新了会丢失版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。