我希望字符串的前两个字符不应该是特殊字符
i want that the first two characters of my string should not be special characters
我希望字符串的前两个字符不应该是特殊字符
function detectInvalidChars(limitField)
{
var len=limitField.value.length;
var char1=limitField.value.substring(0,1);
var char2=limitField.value.substring(1,2);
if(char1=='&'||char1=='<' char1=='!' || char2=='&'||char2=='<'..........so on)
{
alert("Invalid character");
limitField.value = limitField.value.substring(0,len-1);
}
}
而不是将char1
和char2
与每个特殊字符匹配。我能做什么?
您可以使用正则表达式:
var re = /^([&<!]|.[&<!])/;
if (re.test(limitField.value)) {
alert...
}
查看字符串方法 .charCodeAt(n)
然后,您应该能够比较范围内的 ASCII 值。
因此,例如,如果您想排除控件字符,则可以编写类似
if (mystring.charCodeAt(0)<32 || mystring.charCodeAt(1)<32) {
alert("Invalid character");
}
或使用正则表达式。
您可能会发现这个问题很有帮助:是 JavaScript 的 alpha 替代品?
您可以在原始字符串的子字符串上使用正则表达式。
子字符串获取字符串从"from"到"to"的部分。
/^[0-9a-z]+$/是只允许 0 ...9和...Z
function is_part_alnum(value, from, to)
substring = value.substring(from, to);
if(!substring.match(/^[0-9a-z]+$/) {
alert("Invalid character(s)");
}
}
如果你不想使用正则表达式,而是想定义你自己的一组特殊字符,你可以使用这样的函数:
function detectInvalidChars(s, count) {
var specialChars = "!@#$%^&*()+=-[]'''';,./{}|'":<>?~_";
var firstChars = s.substr(0, count).split('');
for(var i=0; i<firstChars.length; i++) {
if(specialChars.indexOf(firstChars[i]) !== -1) {
// invalid char detected
}
}
}
其中s
是字符串,count
是应调查的第一个字符的数目。
相关文章:
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- 如果两个跨度有数据,则添加字符
- 如何在jQuery中搜索两个字符之间的字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 电子邮件验证不接受仅包含两个字符的域
- 如何完成此循环?连接前面的两个字符
- 如何使用jQuery获取url的最后两个字符
- Javascript-使用Regex获取两个字符之间的字符
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 通过JQuery在网页上的两个字符之间放置空格
- 如果两个波浪号字符之间的字符计数大于60,则在两个波浪字字符之间添加波浪号
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 如何匹配两个字符内的重复模式
- 在javascript中组合使用连字符连接的两个字符串
- Regex/Javascript;否定地选择两个字符的重复
- 匹配单词中两个相等的字符,并替换为一个RE
- 正则表达式不匹配序列中的两个相同字符
- 如何提取两个字符之间的字符串
- 如何在 javascript 中替换两个声明字符之间的字符串