jquery 以字符串开头_关于jquery:检查字符串是否以标点符号开头(JavaScript)

如何使用Javascript检查我的数据字符串是否以标点符号开头? 我查看了检查字符串是否为标点符号,以及如何知道一个字符串以jQuery中的特定字符串开头/结尾? 以及其他一些,但我无法确定我要去哪里。

这是我到目前为止的摘要:

var punctuations = [".",",",":","!","?"];

if (d.endContext.startsWith(punctuations)) {console.log(d.endContext)

} else {console.log('false')};

我只会得到"假"的返回,但是如果我输入""。 在

if(d.endContext.startsWith('.'))

...

我得到正确的结果。 我也试过

String punctuations =".,:;?!"

例如,建议检查字符串是否为标点符号,但是Chrome和Firefox均向我显示错误消息(分别为"未捕获的语法错误:意外的标识符"和"语法错误:缺少;之前的语句")。 似乎该错误通常是因为用Javascript写多行字符串,我认为我没有这样做。 d.endContext将打印多行字符串,但是当我仅传递"。"时它可以正常工作,所以我认为这不是问题。

使用RegExp测试字符串。

使用Regex更简单。

var str = '.abc'

var result = !!str.match(/^[.,:!?]/)

console.log(result)

/表示正则表达式的开始/结束

^表示"开始于"

[]表示"字符集"。它将匹配[和]之间的任何字符

此外,这个程序对于学习正则表达式非常有用!

http://regexr.com/

祝你今天愉快! :D

如果您可以解释!!的作用以及正则表达式的详细含义,那将是很好的。

这对我有用,但是我同意对!!的一些解释! 有助于!

说明已添加!

@ low,@ west,我认为Rokt3r的!!只能是两个not运算符的序列,表示无操作。 我将尝试将其删除,看看是否有人反对…

使用Array.prototype.indexOf可能是最简单的:

var punctuations = [".",",",":","!","?"];

var stringToSearch = d.endContext;  // Your string to search

if (punctuations.indexOf(stringToSearch.charAt(0)) !== -1) {

// Your awesome code goes here

}

它与IE9以及几乎所有的Chrome和Firefox(低至1.5)版本兼容,但是如果您使用的是jQuery,则可以使用inArray进一步向后兼容。

或者...只是为了好玩,您可以使用新的ES7 Array.prototype.includes进入另一端,保持领先地位,并打破所有非beta版浏览器:

var punctuations = [".",",",":","!","?"];

var stringToSearch = d.endContext;  // Your string to search

if (punctuations.includes(stringToSearch.charAt(0))) {

// Your awesome code goes here

}

兼容于:

Chrome 47(尚未发布)

Firefox 43(尚未发布)

这是一个很好的解决方案:

var punctuations = [".",",",":","!","?"];

var punkyString =".hello!";

var nonPunkyString ="hello!";

function isPunkyString(str) {

return punctuations.indexOf(str[0]) > -1;

}

console.log(punkyString,"is punky:", isPunkyString(punkyString));

console.log(nonPunkyString,"is punky:", isPunkyString(nonPunkyString));

单元测试!

var punkyStrings = punctuations.map(function (item) {

return item +"

});

var nonPunkyStrings = punctuations.map(function (item, i) {

return i +"

});

punkyStrings.forEach(function (item, i) {

console.log("Expect","isPunkyString("" + item +"")","to be true:", isPunkyString(item));

});

nonPunkyStrings.forEach(function (item, i) {

console.log("Expect","isPunkyString("" + item +"")","to be false:", isPunkyString(item));

});

为什么美丽?因为我用过punky一词! :D哦,我将字符串视为数组。哪个好!

是否还有其他人测试过他们的代码? :D

使用some和startsWith方法。

punctuations.some(function(character) {

return string.startsWith(character)

});

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some

The some() method tests whether some element in the array passes the test implemented by the provided function.

Or you can also use regex

/[.,:!?]/.test(string.charAt(0))

什么是some?

好的,我刚刚学到了一些新东西。 :)

@Praveen Kumar-developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/我也不知道,但是它看起来非常有用

是的,我刚刚发布了一个链接。 我认为它是ES6的一部分

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值