正则表达式特殊符号 冒号

有如下正则:/^(?:13\d|15\d)-?\d{5}(\d{3}|\*{3})$/请问,其中的“?:”和“\*{3}”是什么意思?其他的部分我理解,就这两个不理解的。... 有如下正则:
/^(?: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;
}
展开
 我来答
八月神释
2011-02-12
知道答主
回答量:10
采纳率:0%
帮助的人:13.5万
展开全部
首先给你解释你说的不明白的那两个内容吧,定义是这样的
(?: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的值想做什么揣摩不出来。
ftfix23
2011-02-12 · TA获得超过117个赞
知道答主
回答量:212
采纳率:0%
帮助的人:0
展开全部
与其输入之后再判断,不如限制输入,当前前提是这些特殊符号是无效的
如果你需要这些特殊符号只是想暂时去除,应该是用for来一个一个找,效率高点,而不是if(txt.IndexOf("@")>0||txt.IndexOf("#")>0||....)
写一大串的条件
你直接定义一个chararray,加入@#$之类的你想去掉的特殊字符
然后for或者foreach字符串的每个字符,如果in chararray就replace掉

特别的,如果你的特殊字符只出现在字符串首尾的话,可以用c#内建的trim(char[])方法,该方法默认情况下是去除首尾的空格,你可以自己定义一个char[]数组,加入你要去除的字符,然后就可以清除首尾的特殊字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式