我使用startswith
REG EXP在Javascriptstartswith在JavaScript错误
if ((words).match("^" + string))
但如果我输入字符,如, ] [ \ /
,使用Javascript抛出异常。 有什么想法?
我使用startswith
REG EXP在Javascriptstartswith在JavaScript错误
if ((words).match("^" + string))
但如果我输入字符,如, ] [ \ /
,使用Javascript抛出异常。 有什么想法?
如果您使用正则表达式匹配,你必须确保你传递一个有效Regular Expression匹配()。检查list of special characters以确保您不会传递无效的正则表达式。下面的字符应始终逃脱(放置\之前)。?[\^$ | * +()
一个更好的解决办法是使用SUBSTR()这样的:
if(str === words.substr(0, str.length)) {
// match
}
或使用的indexOf一个解决方案是一个(其看起来有点清洁器):
if(0 === words.indexOf(str)) {
// match
}
下可以添加startsWith()方法将字符串原型,其包括任何上述两种解决方案,使使用更易读:
String.prototype.startsWith = function(str) {
return (str === this.substr(0, str.length));
}
当添加到原型,你可以使用它像这样:
words.startsWith("word");
如果你想检查一个字符串固定值开始,你也可以使用substr
:
words.substr(0, string.length) === string
也可以使用indexOf来确定字符串是否以固定值开始:
str.indexOf(prefix) === 0
+1。 indexOf()=== 0'对我来说比使用子字符串更有意义。 – 2009-09-11 16:19:09
如果你真的w蚂蚁使用正则表达式你必须在字符串中转义特殊字符。 PHP有一个函数,但我不知道任何JavaScript。尝试使用下面的函数,我从[Snipplr] [1]
function escapeRegEx(str)
{
var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
return str.replace(specials, "\\$&");
}
发现,如果你只需要找到以另一个字符串尝试字符串以下为
var mystring="Some text";
mystring=escapeRegEx(mystring);
使用
String.prototype.startsWith=function(string) {
return this.indexOf(string) === 0;
}
and use
var mystring="Some text";
alert(mystring.startsWith("Some"));
什么例外? – Gumbo 2009-09-11 07:32:25