一、JS正则表达式,汉字表示!!!
中文字符匹配js正则表达式,普遍使用的正则是[\u4e00-\u9fa5],但这个范围并不完整。例如:/[\u4e00-\u9fa5]/.test('⻏')//测试部首⻏,返回false。
根据Unicode 5.0版编码,要准确的判断一个中文字符要包括:
范围含义范围含义
2E80-2EFF CJK部首补充 2F00-2FDF康熙字典部首
3000-303F CJK符号和标点 31C0-31EF CJK笔画
3200-32FF封闭式 CJK文字和月份 3300-33FF CJK兼容
3400-4DBF CJK统一表意符号扩展 A 4DC0-4DFF易经六十四卦符号
4E00-9FBF CJK统一表意符号 F900-FAFF CJK兼容象形文字
FE30-FE4F CJK兼容形式 FF00-FFEF全角ASCII、全角标点
因此,正确的匹配中文字符正则表达式为:
var rcjk=/[\u2E80-\u2EFF\u2F00-\u2FDF\u3000-\u303F\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FBF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF]+/g;
二、JavaScript正则表达式中 : 是什么意思
“?:”是“非获取存储匹配”的意思
“?:”只在一个“()”group中,紧贴着“(”出现,例如“(?:abcdefg)”,不同于“?”,“?:”不是一个量词,但是与“()”共同构造一个元字符,这个元字符所匹配出来的结果,不会保留,也不能参与诸如替换计算等等的操作。(这个操作在服务端多见一些,前端用的不多)(javascript只有string对象的replace方法能用到这个功能)
简单来说,就是你的正则表达式如果用不着在javascript里面使用replace方法,“?:”就可以省去(当然,看个人喜好和排版习惯,还有调试中的页面响应速度,如果加了“?:”反而更快,那就用吧)。
这么说起来还是比较抽象,用实例代码来说明吧。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>将匹配的数字增加后缀“9”</p>
<p class="demo">/(\d+)/gi:A23G4HFD567.</p>
<p class="demo">/(?:\d+)/gi:A23G4HFD567.</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
var e=document.getElementsByClassName("demo");
var str=e[0].innerHTML;
var n=str.replace(/(\d+)/gi,"$19");
e[0].innerHTML=n;
str=e[1].innerHTML;
var n=str.replace(/(?:\d+)/gi,"$19");
e[1].innerHTML=n;
}
</script>
</body>
</html>
<!---->
<!--在实例里面“$1代表第一个“()”所匹配的结果-->
点击“点我”按钮前
点击“点我”按钮后
可以看到“/(\d+)/gi”所匹配的结果被用于扩展替换字符串中的“$1”;
但是“/(?:\d+)/gi”所匹配的结果没有被用于扩展替换字符串中的“$1”,尽管,它也成功地找到了被查找字符串中的数字,显然结果没有被保留。
对了,类似的问题,可以用这种办法去对比验证。(比如“?=”、“?!”、“?<=”、“?<!”是什么意思……)
上图是在菜鸟教程找到的一个比较全面的正则表达式的元字符列表的部分:https://www.runoob.com/regexp/regexp-metachar.html
还有,不同软件的正则表达式的可能有不同的特性,但是目前perl的正则表达式是公认最多特性的。
三、js 正则表达式 \\-是什么意思
这个正则可以匹配各种 url,比如当前页面的url
https://zhidao.baidu.com/question/876452972714524812.html
具体解释:
最左最右的/先忽略是正则的界定符,表示正则的开始结束
(\w+)表示长度大于1的字符串(\w的含义自己搜一下)
:比较单纯就是表示:
\/\/这个表示//因为/跟上述界定符长得一样会导致程序懵逼,所以前面加了\来转义
([\w.]+)表示长度大于1由\w和.(点)组成的字符串
\/同上
(\S*)除空白符号之外的的任意字符任意长度
用()括起来表示要在代码里捕获这里面匹配的内容
你问的问题比较基础,建议先自学一下正则。推荐下面的教程
http://deerchao.net/tutorials/regex/regex-1.htm
学习正则不要急于求成,耐心看完+多实践
四、JS正则表达式完整教程10
亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣。
想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准。
关于正则表达式的教程,网上也有很多,相信你也看了一些。
与之不同的是,本文的目的是希望所有认真读完的童鞋们,都有实质性的提高。
本文内容共有七章,用JavaScript语言完整地讨论了正则表达式的方方面面。
如果觉得文章某块儿没有说明白清楚,欢迎留言,能力范围之内,老姚必做详细解答。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符**、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
关于JS正则表达式语法_js正则表达式语法大全和JavaScript正则表达式中 : 是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。