繁体   English   中英

Javascript 检查字符串是否仅包含某个字符

[英]Javascript check if string contains only certain character

如果给定字符串只有某个字符但该字符出现任意次数,我想返回 true。
例子:

// checking for 's'
'ssssss' -> true
'sss s'  -> false
'so'     -> false

检查这个

<div class="container">
    <form action="javascript:;" method="post" class="form-inline" id="form">
        <input type="text" id="message" class="input-medium" placeholder="Message" value="Hello, world!" />

        <button type="button" class="btn" data-action="insert">Show</button>

    </form>
</div>

JavaScript

   var onloading = (function () {

            $('body').on('click', ':button', function () {
                var a = document.getElementById("message").value;
                var hasS = new RegExp("^[s\s]+$").test(a);
                alert(hasS);
            });

    }());

示例http://jsfiddle.net/kXLv5/40/

只需检查是否存在除空格和"s"以外的任何内容并反转布尔值

var look = "s";
if(!new RegExp("[^\s" + look + "]").test(str)){
   // valid
}

或者检查它们是否是唯一一个使用字符类和锚点^$

var look = "s";
if(new RegExp("^[\s" + look + "]$").test(str)){
   // valid
}

首先,使用split将字符串转换为数组,

const letters ='string'.split('')

然后,使用Set数据结构并将数组作为参数传递给构造函数。 Set 将只有唯一值。

const unique = new Set(letters)

这个 unique 将只有唯一的字符,因此,当您通过sss时,它将只有一个s

最后,如果唯一数组只包含一个元素,那么我们可以说这个字符串只包含相同的字母。

if (unique.size() === 1) { // the string contains only the same letters}

你的函数应该是这样的,

function isIdentile(string) {
    const letters = string.split('');
    const unique = new Set(letters)

    return unique.size() === 1 ? true: false;
}

用 ssssnake 来做

'sss'.split('s').some(s => s) === true
'sssnake'.split('s').some(s => s) === false

使用正则表达式:

 const allOne = str => /^(.)\1*$/.test(str) console.log(allOne(prompt("input")))

正则表达式的解释:

^(.)\1*$   full RegEx
^          start of line
 (.)       any character, stored in group 1
    \1*    repeat group 1 zero or more times
       $   end of line

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM