正则表达式特殊符号 冒号有如下正则:/^(?:13\d|15\d)-?\d{5}(\d{3}|\*{3})$/请问,其中的“?:”和“\*{3}”是什么意思?其他的部分我理解,就这两个不理解的.下面这个javascirpt函数什么意思:function checkPos(obj){var r = document.selection.createRange();var ctr = obj.createTextRange();var i;var ivalue = "&^asdjfls2FFFF325%$^&"; r.text = ivalue;i = obj.value.indexOf(ivalue);r.moveStart("character",-ivalue.length);r.text = "";return i;}

问题描述:

正则表达式特殊符号 冒号
有如下正则:
/^(?:13\d|15\d)-?\d{5}(\d{3}|\*{3})$/
请问,其中的“?:”和“\*{3}”是什么意思?其他的部分我理解,就这两个不理解的.
下面这个javascirpt函数什么意思:
function checkPos(obj){
var r = document.selection.createRange();
var ctr = obj.createTextRange();
var i;
var ivalue = "&^asdjfls2FFFF325%$^&";
r.text = ivalue;
i = obj.value.indexOf(ivalue);
r.moveStart("character",-ivalue.length);
r.text = "";
return i;
}

首先给你解释你说的不明白的那两个内容吧,定义是这样的
:pattern)
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用.这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用.例如,'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式.那么(?:13\d|15\d)也就是要在这里面选择匹配13+0~9的数字一个或15+0~9的数字
\*
因为*是正则表达式里的特殊字符,所以,这里要匹配字符串里的*时,得用转义字符“\”
那么\*{3}就是要匹配“***”
你写的那个JS
返回的是obj内容中包含第一个ivalue子串的索引
r.moveStart("character",-ivalue.length);是将selection选中项内容进行定位,光标以"character(字符)"时行跳转,因为后面的参数是-,所以会向后(光标向左移)定位那么多个字符(一个汉字算一个字符)
我能看出来的也只有这个了,这个JS我也不知道能做个什么,那个ivalue的值想做什么揣摩不出来.