关于字符“.“与Java的split()方法和Javascript的split()、find()方法的那些坑

"本文探讨了Java和JavaScript中split()方法处理特殊字符时的转义规则差异。在Java中,"."需要使用"\."进行转义,而JavaScript则允许不加转义直接使用"."。此外,文章提到了在JavaScript中使用find方法查找含有"."的节点时遇到的问题,指出必须使用Java的转义规则""\.""才能正确匹配。这个小细节在实际项目中可能导致困惑和效率损失。"
摘要由CSDN通过智能技术生成

1.1 Java的split()方法

众所周知,Java的split方法碰到某些特殊字符需要转义。例如字符"."用做split()的切割器,需要转义,写法如下:

String str="mizuho.kaga";
String[] ss=str.split("\\.");

双反斜杠是因为\在Java中也需要转义。
其他字符例如:|写法为split("\\|")

1.2 Javascript的split()方法

Javascript的split()和Java的不同,当使用字符"."用做split()的切割器时,加不加反斜杠都行。两种写法如下:

 var src_name = conn.sourceId.split(".");
 var src_name2 = conn.sourceId.split("\.");

结果:
在这里插入图片描述
查了下资料原因是java的正则匹配规则和js的正则匹配规则略有不同,参考JS文档

2 Javascript的find()方法

需要用find方法找子节点,当子节点id中存在"."时,find的写法会导致选择器有时能找到有时候又找不到的情况。

下面我需要实现通过选择器找到元素将文本颜色从原本的色设置为色,下面是几种情况
结论:当节点id有".",拼接id需要用java的转义写法

1. 直接用id,无法找到节点,失败

在这里插入图片描述

2.拆开写,无法找到节点,失败

在这里插入图片描述

3. 使用js"\."的转义写法后,失败

在这里插入图片描述

4. 使用java"\\."的转义写法后,找到了节点成功!

在这里插入图片描述
这里用了双反斜杠转义".",效果终于有了。

一般项目肯定都是拼接的,很迷糊,按js的转义写法转义".",找不到,必须用java的转义写法

这个坑又找了半个小时。果然不是专业前端,一个小坑就很浪费时间,脑壳疼。

↓实际项目写法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值