Om3*_*3ga 7 javascript regex jquery
我有一个函数,我首先检查作为参数传递的字符串是否只有字母.但它总是以虚假的方式回归.下面是我的jsfiddle
function takeString (str) {
var regex = "/^[A-Za-z]+$/";
if (str.match(regex)) {
if (str.charCodeAt(0) === str.toUpperCase().charCodeAt(0)) {
alert('true');
return true;
}
else {
alert('false');
return false;
}
}
else {
alert('Only letters please.');
}
}
takeString('string');
Run Code Online (Sandbox Code Playgroud)
以上代码始终提醒Only letters please.
您需要删除引号以regex生成正则表达式文字:
var regex = /^[A-Za-z]+$/;
Run Code Online (Sandbox Code Playgroud)
这是一个更新的小提琴.
目前,regex指的是字符串文字.当您传递的不是正则表达式对象或文字对象时String#match,它会隐式地将该参数转换为正则表达式对象(请参阅ES5 15.5.4.10):
- 如果Type(正则表达式)是Object和的值[[类]的内部属性的regexp是
"RegExp",则设RX是正则表达式 ;- 另外,让rx成为一个新的RegExp对象,就像表达式
new RegExp(regexp一样),它RegExp是具有该名称的标准内置构造函数.
因此,您的正则表达式将被解释为这样(因为该字符串包含您希望分隔正则表达式文字的正斜杠字符):
var regex = /\/^[A-Za-z]+$\//;
Run Code Online (Sandbox Code Playgroud)
这无法匹配任何东西,因为它正在寻找正斜杠,然后是字符串的开头.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |