WEB聊天表情--正则表达式$用法,replace用法

前端开发实战:Unicode Emoji与微信表情的编码原理与跨平台处理 在现代Web与移动开发中,字符编码是处理文本数据的基础,而Unicode标准则是实现全球文字统一表示的核心规范。其原理在于为每个字符分配唯一的码点(Code Point),并通过UTF-8等编码格式转换为计算机可存储的字节序列。这一技术的核心价值在于确保了跨平台、跨语言文本信息的一致性与互操作性,是支撑国际化应用与复杂文本渲染的基石。在实际应用场景中,开发者常需处理包含Emoji与平台私有表情(如微信表情)的用户生成内容,这涉及到开放标准与封闭生态的映射、字符串安全操作与跨端显示一致性等工程挑战。本文聚焦于 阅读详情

WEB聊天添加QQ表情,可用jquery插件 jquery.qqFace.js


自定义实现:

移动端表情定义<汗> <微笑> <龇牙> <折磨下>

表情列表模板:

qqFaceList为ajax动态换取的表情List<QQFaceBean>  name 属性

<script id="qqFaceListTemplate" type="text/template">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<%_.each(qqFaceList, function(record,index){%>
	<%if(index % 16 == 0){ %>
		<tr>
	<%}else{%>
		<td><img src="../images/arclist/<%=record.name%>.gif" alt="<<%=record.name%>>" onclick="addToContent(this)"/></td>
	<%}%>
	<%if(index % 16 == 15){%>
		</tr>
	<%}%>
<% });%>
</table>
</script>


点击弹出(其他点击隐藏) --选中添加到输入框

<script type="text/javascript">
	$("div").click(function(){    //点击其他地方隐藏表情div
		$(".qqFace").hide("slow");
	});
	$(".emotion").click(function(event){
		getQQFaceList();
		if($(".qqFace").is(":hidden")){
			$(".qqFace").show("slow");
		}else{
			$(".qqFace").hide("slow");
		}
		$(document).one("click", function () {//对document绑定一个影藏Div方法
			$("#qqFace").hide();
		});
		event.stopPropagation();
	});
</script>

<script type="text/javascript">
	function addToContent(myimg){
		var content = $("#content").val();
		var alt = $(myimg).attr("alt");
		$("#content").val(content+alt);
	}
</script>

最重要的一个函数:

将聊天记录中的<**> 替换成服务器中的表情图片

<span style="font-family:Microsoft YaHei;font-size:14px;">chatRecordsListHTML = chatRecordsListHTML.replace(/\<(\S{1,3})\>/g,'<img src="../images/arclist/$1.gif" border="0" />');</span>

chatRecordsListHTML 为聊天记录

1、/g表示的是匹配全局,否则只匹配一个,加个/g,相当于java的replaceAll

2、\S表示非常字符串   \S{1,3}  匹配的是1到3个非空字符串

3、正则表达式: 后面的$1 代表的是正则表达式中的第一个()   ,$2 代表的是正则表达式中的第二个括号     以此类推........

     也就是    --->$1可能值为:  "龇牙"  , "汗"  , "微笑“


因为图片中有中文:记得配置:URIEncoding="UTF-8"

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>



下面参考:

js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果


功能:$1-$9存放着正则表达式中最近的9个正则表达式的匹配结果,这些结果按照子匹配的出现顺序依次排列。 

基本语法RegExp.$n 

注意:这些属性是静态的,除了replace中的第二个参数可以省略RegExp之外,其他地方使用都要加上RegExp。

<html> 
<script language="javascript" type="text/javascript"> 
//创建要进行匹配的字符串 
var objStr="这是我的手机号13100000000" 
//创建正则表达式匹配手机号码 
var re=/(13)(/d)(/d{8})/;//该正则表达式可以匹配手机号码以13开头的11为号码以()为子匹配的标志 
document.write(objStr.replace(re,"$1$2********"));//处于隐私对字符串按照正则表达式的内容进行替换 
//如果第二个子匹配结果,即手机号码中的第三位数字小于等于3则该手机号为联通号码,否则为其他运营商的号码 
if(RegExp.$2<=3){ 
document.write("这是联通手机号"); 
}else{ 
document.write("这是移动或者电信手机号"); 
} 
</script> 
</html> 

<html> 
<script language="javascript" type="text/javascript"> 
//创建一个需要匹配的字符串 
var objStr="这是我的手机号码13112345678, 这是我朋友的手机号码13912345678"; 
//创建匹配手机号码的正则表达式对象,隐式创建 
var reg=/(13)(/d)(/d{8})/g;//g为全局匹配参数,匹配11位手机号码; 
//将字符串进行匹配如果符合结果则将返回结果放入数组中 
var arr=objStr.match(reg); 
with(document){ 
if(arr!=null){//如果匹配有结果 
write("检测到"+arr.length+"个手机号码");//显示匹配到多少个电话号码 
//循环输出各个结果,并且判断运营商 
for(var i=0;i<arr.length;i++){ 
//对匹配出来的电话号码进行二次匹配,获取号码的第三个数字 
arr[i]=arr[i].toString().replace(reg,"$1$2********"); 
//以列表的形式输出各个电话号码 
write("<li>"+arr[i]); 
//如果第三个电话号码小于等于3则该电话号码为联通号码,否则为其他运营商的号码 
if(RegExp.$2<=3){ 
write("这是一个联通手机号码!"); 
}else{ 
write("这是一个移动或者电信手机号码!"); 
} 
}//for循环的结束 
}//if的结束 
}//with的结束 
</script> 
</html> 

自己的例子:

<script type="text/javascript">
	$("#sub_btn").click(function(){
		var content = $("#content").val();
		var reg=/([\w\W]*)(\<(\S{1,3})\>)([\w\W]*)$/g;

		if(reg.exec(content)){
			alert(RegExp.$3);
			alert('是规定的格式');
			var aaa = content.replace(RegExp.$3,"你你你");
			$("#content_tip").html(aaa);
		}else{
			alert('正常文字');
			$("#content_tip").html(content);
		}
	});
</script>



下面参考:

js中字符替换函数String.replace()使用技巧

String.replace( ) 简介 
语法: 
var strings = string.replace(regexp, replacement) 

regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作;如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作。 
replacement :您要替换成的字符。 
返回值是执行替换操作后的字符串。 


11 String.replace( ) 的简单用法 
var text = "javascript 非常强大 !";13 text.replace(/javascript/i, "JavaScript");14 // 返回:JavaScript 非常强大 ! 

String.replace( ) 替换所有出现的目标字符 
var text= "javascript 非常强大 !JAVASCRIPT 是我最喜欢的一门语言 !";17 text.replace(/javascript/ig, "JavaScript");18 // 返回:JavaScript 非常强大 !JavaScript 是我最喜欢的一门语言 ! 

String.replace( ) 实现调换位置 

var name= "Doe, John"; 
name.replace(/(\w+)\s*,\s*(\w+)/, "$2 $1"); 
// 返回:John Doe 

String.replace( ) 实现将所有双引号包含的字符替换成中括号包含的字符 
var text = '"JavaScript" 非常强大!';25 text.replace(/"([^"]*)"/g, "[$1]");26 // 返回:[JavaScript] 非常强大! 

String.replace( ) 将所有字符首字母大写 
var text = 'a journey of a thousand miles begins with single step.';29 text.replace(/\b\w+\b/g, function(word) {30 return word.substring(0,1).toUpperCase( ) +31 word.substring(1);32 });33 34 // 返回:A Journey Of A Thousand Miles Begins With Single Step.




Python正则表达式实现中英文混合文本自动分句工具 在自然语言处理和数据清洗中,文本分句是基础且关键的预处理步骤。其核心原理是通过识别句子边界标点(如句号、问号、感叹号)来切分连续文本。传统基于简单字符串分割的方法在处理缩写、数字、URL等复杂场景时容易出错,影响后续NLP任务的准确性。正则表达式通过模式匹配,能够结合上下文智能判断边界,有效处理中英文混合、全半角标点混用等工程难题。本文基于Python re模块,构建了一个可配置的自动分句工具,支持自定义缩写词库和成对标点保护,可直接集成到数据流水线中,提升文本处理效率与鲁棒性。 阅读详情

相关推荐

AI辅助编程实战:Python实现微信聊天记录本地导出工具

在数据处理与自动化领域,Python因其丰富的库生态和简洁语法,成为处理本地文件、解析数据结构的首选语言。其核心原理在于通过标准库(如sqlite3)访问本地数据库,结合pandas进行数据清洗与分析,实现信息的结构化提取。这项技术的价值在于能够将散落在封闭应用内的用户数据,转化为通用、可分析的格式,从而解决数据备份、迁移与分析的实际痛点。典型的应用场景包括个人数字资产归档、跨平台数据迁移以及基于聊天记录的信息检索与知识管理。本文以微信聊天记录导出为例,展示了如何利用AI编程工具(如Cursor)辅助开发,

weixin_33713707的博客 475

jquery.qqFace.js 页面标签/jquery

// QQ表情插件 (function($){   $.fn.qqFace = function(options){   var defaults = {    id : 'facebox',    path : 'face/',    assign : 'content',    tip : 'em_'   };   var option = $.extend(default

nokiazhangjj的专栏 2757

微信机器人开发实战:从零构建自动化助手的技术方案与实现

自动化技术通过模拟人类操作或系统交互,实现对重复性任务的自动处理,其核心原理在于事件驱动与规则引擎的结合。在即时通讯领域,自动化技术能显著提升沟通效率与用户体验,广泛应用于客服应答、社群运营、信息收集等场景。微信机器人作为自动化技术在即时通讯中的典型应用,通过模拟微信客户端协议实现消息收发、群管理、好友处理等功能。本文基于 Wechaty 框架与 PadLocal Puppet 协议,深入探讨微信机器人的开发实践,涵盖环境搭建、关键词自动回复、群聊管理、消息持久化等核心功能实现,并分享插件化设计、外部API

weixin_34189116的博客 411

Jquery生成emoji表情

Jquery生成emoji表情

PerfectOpening的博客 1005

文本数据处理实战:从编码检测到安全边界的系统化方法

文本数据处理是计算机科学中的基础概念,涉及字符编码、字符串解析和模式匹配等核心技术原理。在工程实践中,正确处理文本数据能够提升系统稳定性、防止安全漏洞,并优化数据处理效率。常见的应用场景包括日志分析、内容审核、文件系统操作和数据库查询等。以热词'编码检测'为例,UTF-8与GBK等不同字符集的混用可能导致乱码问题;另一个热词'括号平衡'则在JSON/XML解析中至关重要,未闭合括号会引发语法错误。本文通过'i love you('这一典型案例,系统讲解从字符集验证到安全防护的完整处理框架,帮助开发者建立规范

weixin_34319817的博客 411

基于UI自动化与AI大模型的微信智能助手开发实战

UI自动化(UI Automation)是一种通过程序模拟用户操作,与软件图形界面进行交互的技术。其核心原理是调用操作系统提供的标准化接口(如Windows UI Automation框架),来识别、定位并控制应用程序中的窗口、按钮、输入框等UI元素,从而实现自动化任务执行。这项技术的价值在于,它无需破解或依赖软件的内部协议,仅在前端模拟人类行为,因此在稳定性和合规性上具有显著优势,尤其适用于对现有封闭式软件(如即时通讯客户端)进行功能扩展。在自动化办公、智能客服、数据采集等应用场景中,UI自动化常与AI能

dengyulong的专栏 434

JQuery实现qq表情选择

/需求:点击qq表情,将其追加到发言框中。//1.给img图片添加onclick事件。//2.追加到p标签中即可。

zhansan的博客 302

微信昵称特殊字符处理全链路实战:从Unicode编码到数据安全与合规

在Web开发与数据处理中,字符编码是基础而关键的一环,它决定了信息如何在计算机中存储、传输和显示。Unicode作为全球通用的字符集标准,其原理在于为每个字符分配唯一的码点,支持包括Emoji在内的多语言文本。这一技术的核心价值在于实现全球信息的无障碍交换与展示,是构建国际化应用的基石。其应用场景广泛,从用户输入、网络传输、后端处理到数据库存储和前端渲染,贯穿整个数据流。然而,在处理如微信昵称这类用户生成内容时,特殊字符(如Emoji、零宽字符)会带来存储、显示和安全等多重挑战。本文聚焦于**Unicode

weixin_34280237的博客 339

分享一款基于jQuery的QQ表情插件

HTML 首先在html页面的head中引入jQuery库文件和QQ表情插件jquery.qqFace.js文件。 <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="jquery.qqFace.js"...

weixin_30316097的博客 503

QQ表情插件jquery.qqFace.js

基于jQuery的QQ表情特效插件

jQuery QQ表情插件qqFace特效代码

jQuery QQ表情插件qqFace是一款基于jQuery实现的QQ表情特效插件jquery.qqFace.js。

ASP.NET留言板 文字加表情

对于学习ASP.NET的人,留言板再熟悉不过了。但是仅仅是文字留言功能,你是否觉得厌烦了呢?你是否渴望像QQ聊天那样,时不时地加上个表情来张扬个性?那么下面要说的就是如何实现。    一般说来,使用TextBox文本框来接收留言信息,但是TextBox只能写入文本,不能够加入图片,这可怎么办?那好,这个问题先放一放,说点其他的。如果你是个细心的人,并且经常浏览优酷网,那么你是否还记得优酷网留言时的效果呢?    请看下面的图并且注意:我点击了第一个图片“赞”,留言板中却是“[01]”。很显然,它是用[01]

林榆耿的专栏 2318

jQuery qqFace QQ表情插件 论坛 留言本专用

摘要:脚本资源,jQuery,QQ表情,jquery插件 一个基于jQuery的QQ表情插件qqFace使用例子,特别适合用于论坛、留言本、评论等模块中,应用后只需点击“表情”按钮后,会展开所有的QQ表情列表,点击表情后会自动添加到文本框中。 运行环境:HTML/PHP/ASP/

从Unicode到应用:全面解析Emoji数据获取、解析与渲染方案

Unicode作为全球通用的字符编码标准,定义了包括Emoji在内的所有字符的唯一标识。其核心原理是为每个字符分配一个码点,并通过UTF-8等编码方案实现跨平台兼容。在技术价值上,Unicode确保了数字文本的全球可交换性,是国际化应用的基础。Emoji作为Unicode标准的一部分,其编码、组合与呈现遵循特定规范,广泛应用于社交互动、用户界面和数据分析等场景。针对“获取所有emoji表情”和“notocolor emoji svg字体下载”等高频需求,开发者需掌握从权威数据源获取结构化列表、使用专业库进行

weixin_30596165的博客 421

基于jQuery实现的QQ表情特效插件qqFace

基于jQuery实现的QQ表情特效插件qqFace 基于jQuery实现的QQ表情特效插件qqFace

手把手教你用MATLAB/Simulink模拟微电网潮流方向(附代码下载)

本文提供了一份详细的MATLAB/Simulink微电网潮流仿真实战指南。通过手把手教学,指导读者从零搭建包含光伏、储能和负荷的微电网模型,并模拟并网、孤岛等多种运行场景下的潮流方向变化。文章核心在于利用Simulink实现微电网的动态潮流分析与可视化,帮助工程师深入理解分布式能源系统中的功率平衡与控制策略。

weixin_28314575的博客 106

Java文本处理实战:构建可配置的净化与增强管道

在后端开发中,字符串处理是处理用户生成内容(UGC)的基础环节,涉及编码、正则表达式和业务逻辑解耦等核心原理。其技术价值在于将杂乱的原始文本转化为干净、结构化、可供下游系统(如搜索、推荐、情感分析)安全消费的数据资产,从而提升产品体验与系统稳定性。典型的应用场景包括用户评论清洗、聊天内容规范化、日志分析预处理以及敏感信息过滤。本文通过一个基于Spring Boot的实战案例,详细阐述了如何运用责任链模式构建一个可配置、可扩展的文本处理管道,并重点解决了网络热词(如“芭比Q了”)规范化与Emoji符号处理等工

weixin_34290631的博客 456

浅谈python反序列化漏洞

0x01 python序列化与反序列化 Python 的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。python中的序列化操作是通过pickle模块,而该模块主要包含l dumps将dict转化为str格式,loads将str格式转化为dict格式。 dump和load与文件操作结合起来, pickle.dump(obj, f...

Lethe's Blog 3219

python+ai学习

跟练学习python+ai案例

tongyaolys的博客 298

如何让 RTX 5090 开启 PCIE P2P 以加速多卡通信

RTX 5090 基于新的 Blackwell 架构。NVIDIA 出于对某些主板兼容性(如 IOMMU、Resizable BAR 策略)的保守考虑,**屏蔽了 5090 的 BAR1 P2P 功能**。 我们需要通过 Patch 驱动源码,强制开启这一隐藏功能。 开启 P2P 后,PyTorch 的集合通信算子(Multi-GPU 训练的核心)延迟显著降低,**All-Reduce 甚至降低了 60% 以上**。

Hi20240217的博客 1718

gm/ID设计方法实践指南:从理论曲线到电路优化的关键步骤

本文详细介绍了gm/ID设计方法在模拟IC设计中的实践指南。该方法通过直接利用工艺模型数据,将设计焦点从盲目调整晶体管尺寸转向选择关键的gm/ID工作点,从而在先进工艺下实现功耗、增益和带宽等性能的精准权衡与优化。文章从理论曲线生成到具体电路设计步骤,提供了完整的实战流程。

pandas7gardener的博客 479

用Python微调DeepSeek R1实现人类化对话

大语言模型的‘人类感’并非玄学,而是可建模、可干预的输出行为特征:包括语气松弛度、共情前置性、信息密度控制等。其技术本质是基于Transformer注意力机制中position embedding与layer norm偏置项的可学习性,通过LoRA适配器精准调控Q/K/V投影层的响应路径,并结合指令微调注入情绪标签、语气锚点与动作具象化等人类表达协议。Python凭借全链路可控性,成为实现从数据清洗、LoRA配置、QLoRA量化到logit bias强化的关键工具。该方法已成功应用于心理咨询、教育辅导与品牌

weixin_30552811的博客 359

强化学习 | Multi Agents | Trust Region | HATRPO | HAPPO

ICLR2022多智能体论文,将trust region推广到MA上,保证单调递增。学习博客,共7k字,纯手敲。含大量手写笔记。

111辄的博客 1万+
上一篇: jquery正则表达式匹配
下一篇: 常用js函数--个人项目总结
wive
博客等级 码龄14年 33粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值