其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

关于正则表达式$^的问题?

GG网络技术分享 2025-03-18 16:15 2


问题描述:

let reg = /^\\s+/;
let reg1 = /\\s+$/
let str = \' hello world \';
console.log(str.length);
let a = str.replace(reg, \'\');
console.log(a, a.length);
let b = str.replace(reg1, \'\');
console.log(b, b.length);
let str = \' hello world \';
console.log(str.length);
let reg2 =/\\S(?!=\\S)\\s+\\s(?!=\\s)/ ;
let c = str.replace(reg2, \'\');
console.log(c, c.length);

为什么reg2中增加了^$就会变成null(用reg.test的时候)

网友观点:

^$表示完全匹配,也就是前后不能有别的字符。

20道关于JavaScript正则表达式的测试题,你能答得上来吗?

1.给定正则表达式/^(SE)?[0-9]{12}$/,满足此匹配条件的字符串是:()

A."123456789123"

B."SI12345678"

C."1234567890"

D."ESX1234567Y"


2.给定正则表达式 /^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$/,满足此匹配条件的字符串是:()

A."010"

B."0010"

C."127"

D."10000"


3.给定正则表达式 /^[0-5]?[0-9]$/,满足此匹配条件的字符串是:

A."99"

B."009"

C."0009"

D."10"


4.匹配一个字符串中两个相邻单词(它们之间可以有一个或者多个空白,如空格、制表符或者任何其他UNICODE空白符)的正则表达式是( )。

A./\\b(\\b+)\\s+\\1\\b/

B./\\b(\\w+)\\s+\\b/

C./\\b(\\w*)\\s+\\1\\b/

D./\\b(\\w+)\\s+\\1\\b/


5.已知代码如下,则结果ns变量的值是( )。var s='The AAA is a good AAAA.'; var r=/A/; var ns=s.replace(r,'a');答案是()

A.The aAA is a good AAAA.'

B.The aaa is a good aaaa.'

C.The AAA is a good aAAA.'

D.The aAA is a good aAAA.'


6.给定字符串"<p>第二,3G资费起反作用。</p>",求一正则式,能够匹配这当中的内容( )。

A./<p>(.*?)</p>/

B./<p>*</p>/

C./<p>(*)</p>/

D./<p>(*?)</p>/


7.软件开发中常用的匹配一个html标记的正则表达式是/</?[a-z][a-z0-9]*[^<>]*>/,则符合此格式要求的是( )。

A.<a<>

B.<\\>

C.abc

D.</body>


8.已知"JavaScript".search(/a(.)a/);,则这个函数返回值是:()

A.2

B.3

C.4

D.1


9.有关String的search函数,说法错误的是:()

A."JavaScript".search(/script/i);将返回子串起始位置4

B.如果search的参数不是正则表达式,则首先会通过RegExp构造函数将它转换成正则表达式。

C.search支持全局检索

D.忽略参数regexp的lastIndex属性,总是从string的开始位置搜索


10.String函数replace的语法格式是stringobject.replace(regexp/substr,replacement)。说法正确的是:()

A.参数replacement不是必需参数。

B.replacement可以是字符串,也可以是函数。

C.replacement中的$字符没有什么特定的含义。

D.ECMAScript第5版定义replace()的replacement参数可以用一个函数来代替字符串。


11.String类match函数的语法格式是stringObject.match(searchvalue) 或者 stringObject.match(regexp),下列说法错误的是:()

A.如果regexp参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象。

B.函数的返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局标志g。

C.全局匹配返回的数组的内容与非全局匹配返回的数组内容是一样的。

D.代码'1 plus 2 equals 3'.match(/\\d+/g); 将找出一个字符串中的所有数字。


12.有关RegExp类exec函数错误的结论是:()

A.exec总是包含它返回的数组中的每一个匹配项的全部细节,无论regexp是否为一个全局模式。

B.exec是所有RegExp和String模式匹配方法中最强大的一个。

C.exec在string中搜索匹配regexp的文本。如果它找到一个匹配项,它将返回一个由匹配结果组成的数组;否则,它将返回null。返回数组的元素0是匹配的文本。

D.不可以重复调用exec(),以便循环遍历一个字符串中所有的匹配项。


13.有关RegExp类的test方法正确的结论是:()

A.test用于测试字符串string是否包含匹配参数regexp的文本,如果包含则返回1;否则,返回0。

B./java/i.test("ECMAScript");将返回true

C.r.test(s)等价于(r.exec(s)!=null)

D./java/i.test("JavaScript");返回false


14.匹配一个英文句子(假设句子最后没有标点符号)最后一个单词的正则表达式有( )。

A.\\b(\\w+)\\s*$

B.\\b(\\w+)\\s+$

C.\\s(\\w+)\\s*$

D.\\b(\\w+)\\b*$


15.已知Visa卡号可能有13位或者16位,且首位总是为4。则用于匹配Visa卡号的正则表达式有()。

A./^5[1-5][0-9]{14}$/

B./^5[1-5]\\d{14}$/

C./5[^1-5][0-9]{14}$/

D./^(4\\d{12}(?:\\d{3})?)$/


16.在HTML文件中经常遇到注释行,对应这种注释行的正则表达式是/<!--.*?-->/,满足此匹配条件的字符串有( )。

A."<html>"

B."<p>First paragraph</p>"

C."<a href="http://www.regexbuddy.com/">Link</a>"

D."<!--More boring stuff omitted-->"


17.已知MasterCard信用卡必须包含16位数字。在这16个数字中,前两个数字必须是51-55之间的数字。则如下的正则表达式中合乎匹配MasterCard信用卡的有( )。

A./^5[1-5][0-9]{14}$/

B./^5[1-5]\\d{14}$/

C./5[^1-5][0-9]{14}$/

D./^5[1-5][0-9]{14,14}$/


18.以下说法错误的有:( )

A.JS中如果正则表达式中出现“(?=p)”部分,它有可能是一种分组。

B.JS中如果正则表达式中出现“(?!p)”部分,它有可能是一种分组。

C.JS正则表达式理论中?(包括与其他字符相结合的情况)至少有四种含义。

D.\\B用于匹配单词边界的字符,与\\b含义正好相反。


19.匹配一个html标记的正则表达式是/</?[a-z][a-z0-9]*[^<>]*>/,则符合此格式要求的有( )。

A.<html>

B.</body>

C.</?a>

D.<br>


20.JS程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象。()

A.正确

B.错误

请把你的答案写在留言区,我们会将正确答案也公布在留言区里。


本测试题答案:

1-5:ACDBA;

6-10:ADDCB;

11-15:CDCAD;

16、D;

17、ABD;

18、ABD;

19、ABD;

20、A

如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号【筑梦编程】,大家一起交流讨论!小编也会每天定时更新既有趣又有用的编程知识!

标签:

提交需求或反馈

Demand feedback