1. 程式人生 > >JS校驗textarea輸入框中是否包含中文

JS校驗textarea輸入框中是否包含中文

寫在前面

下面html程式碼可以直接在菜鳥教程的網站去執行,比較方便快捷,省時省力.

程式碼功能描述

判斷你的輸入中有沒有漢字,直接上程式碼吧,文章最後在說說其中遇到的問題.

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <title>JS校驗字元中是否有中文</title>
  </head>

  <head>
    <script>function judgeChinese(obj, spanid)
{
var str = obj.value; var strArray = str.split(""); var haveChinese = false; var i; for (i = 0; i < strArray.length; i++) { if (isChinese(strArray[i])) { haveChinese = true; break; } } if (haveChinese) { document.getElementById(spanid).innerHTML = "有中文!"
; } else { document.getElementById(spanid).innerHTML = "沒有中文!"; } } function isChinese(c) { var specialChar = "[email protected]#$%^&*()_+{}:\"<>?-=[];',./'vwxyz"; var index = specialChar.indexOf(c); if (index > -1) { return
false; } else { var re = /[^u4e00-u9fa5]/; return re.test(c); } }
</script> </head> <body>輸入文字: <textarea id="fname" onchange="judgeChinese(this,'spanId')"></textarea> <span id="spanId" style="color:red;">有漢字嗎?</span> <p>當你離開輸入框後,函式將被觸發,將判斷你的輸入中是否有漢字。</p> </body> </html>

總結

字串分成陣列

JS程式碼var arr = str.split(""),比如str=”abcd”時,arr=[‘a’,’b’,’c’,’d’].str中的漢字也當成作為一個字元.split()的其他用法就不說了,具體參考菜鳥教程JavaScript|split.

遍歷陣列

用for迴圈來做.這裡發現了兩種方法:
方法一:

for(var i = 0; i < arr.length; i++){
    arr[i];
}

方法二:

var i;
for(i in arr){
    arr[i];
}

方法二比較類似java的foreach迴圈,但是我用的時候出了問題,就是當陣列完了,但是迴圈還沒有停.所以我的程式碼採用了方法一做遍歷.
對for迴圈還感興趣的,可以看看菜鳥教程中的for

判斷某串中是否有某個字元

這裡介紹三個函式.
str.match(var regexp)返回值是陣列,會返回str中的所有符合正則的字元段陣列集合.
str.indexOf(var c)返回第一次出現c的位置,沒有返回-1.
str.lastIndexOf(var c)返回最後一次出現c的位置,沒有返回-1.

關於正則匹配中文漢字

網上的教程都是這一個正則就解決問題了var re = /[^u4e00-u9fa5]/;但是我在測試的時候幾個問題.
1.英文的星號* 冒號: 引號” 引號’等符號也會在re.test(xxx);時返回true.
2.英文字母 vwxyz5個字元也會返回true.
這兩個關於字元編碼的問題我現在也沒有搞懂,然後就用了上面那種折中的辦法.(如果這倆個問題不存在的話,也就不用先把字元分成陣列在挨個校驗了).

相關推薦

JStextarea輸入是否包含中文

寫在前面 下面html程式碼可以直接在菜鳥教程的網站去執行,比較方便快捷,省時省力. 程式碼功能描述 判斷你的輸入中有沒有漢字,直接上程式碼吧,文章最後在說說其中遇到的問題. <!DOCTYPE html> <html>

input只輸入數字和js是否輸入只有數字以及游標放輸入時,輸入裡內容消失

input只輸入數字和js校驗是否輸入框只有數字以及游標放輸入框時,輸入框裡內容消失 input框只能輸入數字: 1 onkeyup="value=value.replace(/[^\d]/g,'')" js校驗是否是純數字 1 if(isNaN(bankAccountNo)){ 2

js統計input/textarea輸入輸入字數

如果你在實現“統計input、textarea文字框輸入字數”中遇到問題,閱讀本文或許可以幫助你解決這個棘手的問題! 手機頁面開發,要統計textareal文字框輸入字數,使用onkeyup雖然可以監聽到輸入框的文字字數變化,但在iphone下有個問題:

JS實時監聽輸入的內容

    有時候我們需要實時監聽輸入框中值得變化,這裡得實時監聽是指當我們獲取到輸入框焦點,並在其中鍵入字元的時候,我們可以監聽到當每次鍵入字元後,獲取輸入框中的內容。如下圖 當在上邊的輸入框中每次輸

JS銀行卡號、輸入卡號時放大效果

比較 left for 取出 abs focusout htm length rep 一、(校驗格式) function CheckBankNo(t_bankno) {   var bankno = $.trim(t_bankno);   if(bankno == ""

js響應id事件和獲取input輸入class值、id的值

js響應id事件:記得要在外面多加一個$(function(){ ... });$(function(){ $("#publish").click(function(){ //通過class獲

html js 文字 設定span顏色字型

1.給span設定提示文字 ,設定文字大小,字型顏色 <span style="font-size:18px;"><input type="text" id="name" id="n

jstextarea輸入內容自動新增換行符

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;

獲取textarea文本所選字符光標位置索引,以及選中的文本值;textarea高度自適應,隨著內容增加高度增加;獲取輸入的光標位置

creat substring ons osi 內容 poi name range init 獲取textarea文本框所選字符光標位置索引,以及選中的文本值         $.fn.selection = function () {

實時顯示從file輸入打開的圖片C:fakepath路徑問題

webkit ins alt container dom clas ref 元素 filters html代碼: <input id="file_upload" type="file" /> <div class="image_container"

前端判斷輸入是數字的正則表達式

ble itl title log input his pos 不同 utf-8 工作中有不同的判斷要求,一般是判斷輸入框是正整數或者是正的小數,但是有的判斷還要加能輸入空也就是不輸入,這就是現在要解決的問題。 var tt=/^(?:(?!0)\d*|0)(?:\.

表單輸入如何改變光標的顏色而文字顏色不變

效果 caret 如何改變 info 紅色 圖片 css 分享 mage 如圖所示,要想改變光標顏色,可以通過css的caret-color來設置 input { caret-color: red; } 顯示效果,鼠標點擊輸入框之後,光標顏色

input輸入的光標大小顯示不一致的解決方法

12px 字體 height size 文字 padding 輸入框 我們 解決方法 chrome瀏覽器對光標高度的設置原則為,當沒有內容的時候光標的高度=input的line-height的值,當有內容時,光標從input的頂端到文字的底部 input輸入框中的光標大小顯

Python3 tkinter基礎 Entry get 點擊按鈕 將輸入文字輸出到控制臺

char 一件事 進行 gui 思維 inf 思想 col pycharm ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS

03 React快速入門(三)——實現從一個輸入新增完資料後此輸入內容清除的功能

功能描述:       我們在一個輸入框輸入內容,然後點選新增按鈕,此輸入框的內容就會新增到頁面上,但是此輸入框中還存在上次輸入的內容,我們想在每次輸入新增完成之後,此輸入框中的內容就會清除,如圖:      

js引數是否為空以及url格式

/**   * 校驗欄位是否為URL  * message為提示語關鍵字  */ function isURL(param,message,allowNull) {// 驗證url     var strRegex = "^((h

swing輸入內容即時同步到其他輸入

當swing面板中有很多密碼輸入框,有時需要填寫一個其他的可以即時同步。而swing面板不同於HTML頁面,需要新增事件監聽事件addKeyListener()來進行同步。下面是簡單的原理實現。 import java.awt.GridLayout; import jav

js btc eth 地址

prime code 支持 limit komodo example ria meta there NPM 安裝 npm install wallet-address-validator Browser <script src="wallet-address

textarea文字游標置於行首

1. js部分  <script language="javascript">

js獲取select下拉的值

現在有一id為userType的下拉框,怎麼獲取選中的值: 1 使用者型別: 2 <select name="type" id="userType"> 3 <option value="0">請選擇</option> 4 <option v